{
  "openapi": "3.0.3",
  "info": {
    "title": "Virtual",
    "description": "Load balancing for HTTP, TCP, and UDP traffic with configurable routing rules and origin pool management. Supports health checks, session persistence, and automatic failover. Enables geographic distribution, rate limiting, and service policy enforcement across load balancers and routes.",
    "version": "8.0.2",
    "contact": {
      "name": "F5 Distributed Cloud",
      "url": "https://docs.cloud.f5.com"
    },
    "license": {
      "name": "Proprietary",
      "url": "https://www.f5.com/company/policies/eula"
    },
    "x-f5xc-description-long": "Load balancing for HTTP, TCP, and UDP traffic with configurable routing rules and origin pool management. Supports health checks, session persistence, and automatic failover. Enables geographic distribution, rate limiting, and service policy enforcement across load balancers and routes.",
    "x-f5xc-summary": "Traffic distribution across regions with routing rules. Health checks and failover policies.",
    "x-f5xc-cli-domain": "virtual",
    "externalDocs": {
      "url": "https://docs.cloud.f5.com/docs/how-to/app-networking/http-load-balancer",
      "description": "F5 XC Documentation - HTTP Load Balancer"
    },
    "x-f5xc-api-reference-url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/",
    "x-f5xc-best-practices": {
      "common_errors": [
        {
          "code": 409,
          "message": "Load balancer name already exists",
          "resolution": "Use unique name or delete existing load balancer",
          "prevention": "Check existence with GET before POST"
        },
        {
          "code": 400,
          "message": "Origin pool not found",
          "resolution": "Create origin pool before referencing in load balancer",
          "prevention": "Ensure dependent resources exist first"
        },
        {
          "code": 400,
          "message": "Invalid SSL certificate reference",
          "resolution": "Verify certificate exists and is valid",
          "prevention": "Use certificate management API to validate first"
        },
        {
          "code": 503,
          "message": "All backend servers unhealthy",
          "resolution": "Check origin server health and connectivity",
          "prevention": "Configure proper health checks with appropriate thresholds"
        }
      ],
      "security_notes": [
        "Always use HTTPS for production load balancers",
        "Configure TLS 1.2 or higher for client connections",
        "Enable WAF policies for internet-facing applications",
        "Use certificate pinning for high-security applications",
        "Configure HSTS headers for browser security"
      ],
      "performance_tips": [
        "Enable connection pooling for backend efficiency",
        "Use geographic load balancing for global deployments",
        "Configure appropriate timeout values based on application needs",
        "Enable HTTP/2 for improved client performance",
        "Use caching policies for static content"
      ]
    },
    "x-f5xc-guided-workflows": [
      {
        "id": "deploy_http_loadbalancer",
        "name": "Deploy HTTP Load Balancer",
        "description": "Create a fully configured HTTP load balancer with backend origin pool",
        "complexity": "medium",
        "estimated_steps": 5,
        "prerequisites": [
          "Valid namespace in target tenant",
          "Backend application reachable via IP or DNS",
          "SSL certificate (optional for HTTPS)"
        ],
        "steps": [
          {
            "order": 1,
            "action": "create_origin_pool",
            "name": "Create Origin Pool",
            "description": "Define backend servers for the load balancer",
            "resource": "origin_pool",
            "required_fields": [
              "name",
              "origin_servers",
              "port"
            ],
            "tips": [
              "Use private IPs for internal applications",
              "Configure health checks for high availability"
            ]
          },
          {
            "order": 2,
            "action": "create_healthcheck",
            "name": "Configure Health Check",
            "description": "Set up health monitoring for origin pool",
            "resource": "healthcheck",
            "optional": true,
            "required_fields": [
              "name",
              "http_health_check"
            ],
            "tips": [
              "Use application-specific health endpoints",
              "Set appropriate timeout values"
            ]
          },
          {
            "order": 3,
            "action": "attach_healthcheck",
            "name": "Attach Health Check",
            "description": "Link health check to origin pool",
            "optional": true,
            "depends_on": [
              1,
              2
            ]
          },
          {
            "order": 4,
            "action": "create_http_loadbalancer",
            "name": "Create HTTP Load Balancer",
            "description": "Configure the load balancer with origin pool",
            "resource": "http_loadbalancer",
            "depends_on": [
              1
            ],
            "required_fields": [
              "name",
              "domains",
              "http.port"
            ],
            "tips": [
              "Use wildcard domains for multi-host routing",
              "Configure advertise policy for internet exposure"
            ]
          },
          {
            "order": 5,
            "action": "verify_deployment",
            "name": "Verify Deployment",
            "description": "Test load balancer endpoint accessibility",
            "depends_on": [
              4
            ],
            "verification": [
              "DNS resolution for configured domains",
              "HTTP response from load balancer VIP",
              "Backend origin health status"
            ]
          }
        ]
      },
      {
        "id": "deploy_https_loadbalancer",
        "name": "Deploy HTTPS Load Balancer with TLS",
        "description": "Create HTTPS load balancer with SSL/TLS termination",
        "complexity": "high",
        "estimated_steps": 7,
        "prerequisites": [
          "Valid namespace in target tenant",
          "SSL certificate and private key",
          "Backend application reachable"
        ],
        "steps": [
          {
            "order": 1,
            "action": "upload_certificate",
            "name": "Upload SSL Certificate",
            "description": "Upload certificate and private key",
            "resource": "certificate",
            "required_fields": [
              "name",
              "certificate_chain",
              "private_key"
            ],
            "tips": [
              "Include intermediate certificates in chain",
              "Use PEM format for certificate data"
            ]
          },
          {
            "order": 2,
            "action": "create_origin_pool",
            "name": "Create Origin Pool",
            "description": "Define backend servers",
            "resource": "origin_pool",
            "required_fields": [
              "name",
              "origin_servers"
            ]
          },
          {
            "order": 3,
            "action": "create_healthcheck",
            "name": "Configure Health Check",
            "description": "Set up health monitoring",
            "resource": "healthcheck",
            "optional": true
          },
          {
            "order": 4,
            "action": "create_waf_policy",
            "name": "Configure WAF Policy",
            "description": "Enable web application firewall",
            "resource": "app_firewall",
            "optional": true,
            "tips": [
              "Start in monitoring mode",
              "Use appropriate rule sets"
            ]
          },
          {
            "order": 5,
            "action": "create_https_loadbalancer",
            "name": "Create HTTPS Load Balancer",
            "description": "Configure load balancer with TLS",
            "resource": "http_loadbalancer",
            "depends_on": [
              1,
              2
            ],
            "required_fields": [
              "name",
              "domains",
              "https.tls_parameters"
            ]
          },
          {
            "order": 6,
            "action": "attach_waf",
            "name": "Attach WAF Policy",
            "description": "Link WAF to load balancer",
            "optional": true,
            "depends_on": [
              4,
              5
            ]
          },
          {
            "order": 7,
            "action": "verify_https",
            "name": "Verify HTTPS Deployment",
            "description": "Test secure endpoint",
            "verification": [
              "TLS certificate validation",
              "HTTPS response codes",
              "WAF policy application"
            ]
          }
        ]
      },
      {
        "id": "enable_request_logging",
        "name": "Enable Request Logging (All Requests)",
        "description": "Stream logs for every request a load balancer serves — not just WAF security-event/violation logs. WAF violations show up under Security Events; capturing legitimate (allowed) requests requires a Global Log Receiver configured with the Request Logs log type.",
        "complexity": "medium",
        "estimated_steps": 3,
        "prerequisites": [
          "An existing HTTP load balancer serving traffic",
          "A reachable log collector (HTTP endpoint, Syslog, Kafka, AWS S3, GCP, Datadog, Splunk, …)"
        ],
        "steps": [
          {
            "order": 1,
            "action": "create_global_log_receiver",
            "name": "Create a Global Log Receiver for request logs",
            "description": "Create a global_log_receiver whose log type is Request Logs so every request (allowed and blocked) is exported, then point it at your collector.",
            "resource": "global_log_receiver",
            "required_fields": [
              "name",
              "request_logs"
            ],
            "tips": [
              "Select the 'Request Logs' log type (spec.request_logs) — this captures legitimate/allowed requests, unlike Security Events which only capture WAF violations.",
              "Scope by namespace, or use the shared/system namespace for tenant-wide collection.",
              "Pick exactly one receiver sink: http_receiver, syslog, kafka_receiver, aws_cloud_watch, s3_receiver, gcp_bucket, datadog, or splunk."
            ]
          },
          {
            "order": 2,
            "action": "confirm_loadbalancer_scope",
            "name": "Confirm the load balancers in scope",
            "description": "Request logs stream for the load balancers in the receiver's namespace scope; confirm the target http_loadbalancer is included.",
            "resource": "http_loadbalancer",
            "depends_on": [
              1
            ],
            "tips": [
              "Enhanced request analytics and extra log fields can be tuned on the load balancer but are not required to receive request logs."
            ]
          },
          {
            "order": 3,
            "action": "verify_request_logs",
            "name": "Verify legitimate requests are logged",
            "description": "Send allowed traffic and confirm request-log entries arrive at the collector.",
            "depends_on": [
              1
            ],
            "verification": [
              "Non-violation (2xx/3xx) requests appear at the collector, not only blocked ones",
              "Use the Test action on the Global Log Receiver to validate delivery",
              "The Requests dashboard in the console shows the traffic"
            ]
          }
        ]
      }
    ],
    "x-f5xc-namespace-profile": {
      "constraint": {
        "allowed": [
          "custom",
          "default",
          "shared"
        ],
        "enforced": true
      },
      "recommendation": {
        "primary": "shared",
        "alternatives": [],
        "rationale": "Security policies benefit from centralized management in shared namespace"
      },
      "classification": {
        "category": "security",
        "multi_tenant_pattern": "shared-ref"
      }
    }
  },
  "servers": [
    {
      "url": "https://{tenant}.{console_url}/api/v1/{domain_prefix}/{environment}/{region}/namespaces/{namespace}",
      "description": "F5 Distributed Cloud Console",
      "variables": {
        "tenant": {
          "default": "example-corp",
          "description": "F5 Distributed Cloud tenant identifier (e.g., example-corp, example-partners)"
        },
        "console_url": {
          "default": "console.ves.volterra.io",
          "description": "Console URL base (e.g., console.ves.volterra.io for production, staging.volterra.us for staging)",
          "enum": [
            "console.ves.volterra.io",
            "staging.volterra.us"
          ]
        },
        "environment": {
          "default": "production",
          "description": "Environment designation (production, staging, development)",
          "enum": [
            "production",
            "staging",
            "development"
          ]
        },
        "domain_prefix": {
          "default": "api",
          "description": "Domain naming prefix for consistent naming conventions"
        },
        "region": {
          "default": "us-east-1",
          "description": "Geographic region for API deployment (e.g., us-east-1, eu-west-1)"
        },
        "namespace": {
          "default": "default",
          "description": "Kubernetes-style namespace for environment separation (e.g., 'default', 'production', 'staging')"
        }
      }
    }
  ],
  "security": [
    {
      "ApiToken": []
    }
  ],
  "tags": [
    {
      "name": "cdn"
    },
    {
      "name": "config"
    },
    {
      "name": "data"
    },
    {
      "name": "ml"
    },
    {
      "name": "waf"
    }
  ],
  "paths": {
    "/api/data/namespaces/system/app_firewall/all_ns_metrics": {
      "post": {
        "summary": "MetricsAllNamespaces.",
        "description": "App Firewall metrics.",
        "operationId": "ves.io.schema.app_firewall.CustomDataAPI.MetricsAllNamespaces",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_firewallMetricsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_firewallMetricsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_firewall.CustomDataAPI.MetricsAllNamespaces",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "All-ns-metric resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "all-ns-metric"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "all-ns-metric"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Firewall.",
      "x-ves-proto-service": "ves.io.schema.app_firewall.CustomDataAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/app_firewalls": {
      "post": {
        "summary": "Create Application Firewall.",
        "description": "Create Application Firewall.",
        "operationId": "ves.io.schema.app_firewall.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_firewallCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_firewallCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_firewall.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Web application firewall for threat protection",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "App-firewall resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "app-firewall"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "app-firewall"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Firewall.",
      "x-ves-proto-service": "ves.io.schema.app_firewall.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/app_firewalls/{metadata.name}": {
      "put": {
        "summary": "Replace Application Firewall.",
        "description": "Replace Application Firewall.",
        "operationId": "ves.io.schema.app_firewall.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_firewallReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_firewallReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_firewall.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Web application firewall for threat protection",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "app-firewall"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "app-firewall"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Firewall.",
      "x-ves-proto-service": "ves.io.schema.app_firewall.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_firewall/metrics": {
      "post": {
        "summary": "Metrics",
        "description": "App Firewall metrics.",
        "operationId": "ves.io.schema.app_firewall.CustomDataAPI.Metrics",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_firewallMetricsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "system"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_firewallMetricsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_firewall.CustomDataAPI.Metrics",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Metric resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "metric"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "metric"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Firewall.",
      "x-ves-proto-service": "ves.io.schema.app_firewall.CustomDataAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/app_firewalls": {
      "get": {
        "summary": "List Application Firewall.",
        "description": "List the set of app_firewall in a namespace.",
        "operationId": "ves.io.schema.app_firewall.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_firewallListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of app_firewall.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_firewall.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Web application firewall for threat protection",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Firewall.",
      "x-ves-proto-service": "ves.io.schema.app_firewall.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/app_firewalls/{name}": {
      "get": {
        "summary": "GET Application Firewall.",
        "description": "GET Application Firewall.",
        "operationId": "ves.io.schema.app_firewall.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_firewallGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_firewall.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Web application firewall for threat protection",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Application Firewall.",
        "description": "DELETE the specified app_firewall.",
        "operationId": "ves.io.schema.app_firewall.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_firewallDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_firewall.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Web application firewall for threat protection",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "app-firewall",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "app-firewall",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Firewall.",
      "x-ves-proto-service": "ves.io.schema.app_firewall.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/data/namespaces/system/app_security/all_ns_events": {
      "post": {
        "summary": "Security Events Query All Namespaces.",
        "description": "GET security events for the given namespace.\nFor `system` namespace, all security events for the tenant matching the query specified\nin the request will be returned in the response. User may query security events that matches various\nfields such as `vh_name`, `sec_event_type`, `src_site`, `city`, `country`.\nThis API is specific to system namespace.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsQueryAllNamespaces",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityEventsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityEventsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsQueryAllNamespaces",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "All-ns-event resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "all-ns-event"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "all-ns-event"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/system/app_security/all_ns_events/aggregation": {
      "post": {
        "summary": "Security Events Aggregation Query All Namespaces.",
        "description": "GET summary/aggregation data for security events in the given namespace.\nFor `system` namespace, all security events for the tenant matching the query specified\nin the request will be considered for aggregation. User may query security events that matches various\nfields such as `vh_name`, `sec_event_type`, `src_site`, `city`, `country`.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsAggregationQueryAllNamespaces",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityEventsAggregationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityEventsAggregationRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsAggregationQueryAllNamespaces",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Aggregation resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "aggregation"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "aggregation"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/system/app_security/all_ns_search/loadbalancers": {
      "post": {
        "summary": "Search load balancers All Namespaces.",
        "description": "GET list of virtual hosts matching label filter.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SearchLoadBalancersAllNamespaces",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySearchLoadBalancersResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySearchLoadBalancersRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SearchLoadBalancersAllNamespaces",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Load balancing configuration for traffic distribution",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Loadbalancer resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/events": {
      "post": {
        "summary": "Security Events Query.",
        "description": "GET security events for the given namespace.\nFor `system` namespace, all security events for the tenant matching the query specified\nin the request will be returned in the response. User may query security events that matches various\nfields such as `vh_name`, `sec_event_type`, `src_site`, `city`, `country`.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsQuery",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityEventsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nfetch security events for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityEventsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Event resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "event"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "event"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/events/aggregation": {
      "post": {
        "summary": "Security Events Aggregation Query.",
        "description": "GET summary/aggregation data for security events in the given namespace.\nFor `system` namespace, all security events for the tenant matching the query specified\nin the request will be considered for aggregation. User may query security events that matches various\nfields such as `vh_name`, `sec_event_type`, `src_site`, `city`, `country`.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsAggregationQuery",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityEventsAggregationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nfetch security events for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityEventsAggregationRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsAggregationQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Aggregation resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "aggregation"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "aggregation"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/events/scroll": {
      "get": {
        "summary": "Security Event Scroll Query.",
        "description": "Scroll request is used to fetch large number of security events in multiple batches with each SecurityEventResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSecurityEventScrollRequest. Use the scroll_id returned in the SecurityEventResponse to fetch the next batch of security events\nand one can continue this process till the scroll_id returned is \"\" which indicates no more events to scroll.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsScrollQuery_get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityEventsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nfetch the WAF security events scoped by namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          },
          {
            "name": "scroll_id",
            "description": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "in": "query",
            "required": false,
            "x-displayname": "Scroll ID",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsScrollQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "post": {
        "summary": "Security Event Scroll Query.",
        "description": "Scroll request is used to fetch large number of security events in multiple batches with each SecurityEventResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSecurityEventScrollRequest. Use the scroll_id returned in the SecurityEventResponse to fetch the next batch of security events\nand one can continue this process till the scroll_id returned is \"\" which indicates no more events to scroll.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsScrollQuery_post",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityEventsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nfetch the WAF security events scoped by namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityEventsScrollRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsScrollQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Scroll resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "scroll"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "scroll"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/incidents": {
      "post": {
        "summary": "Security Incidents Query.",
        "description": "GET security incidents for the given namespace.\nFor `system` namespace, all security incidents for the tenant matching the query specified\nin the request will be returned in the response. User may query security incidents that matches various\nfields such as `vh_name`, `intent`, `city`, `country`.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsQuery",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityIncidentsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nFetch security incidents for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityIncidentsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Incident resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "incident"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "incident"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/incidents/aggregation": {
      "post": {
        "summary": "Security Incidents Aggregation Query.",
        "description": "GET summary/aggregation data for security incidents in the given namespace.\nFor `system` namespace, all security incidents for the tenant matching the query specified in the request will be\nconsidered for aggregation. User may query security events that matches various fields such as `vh_name`,\n`intent`, `city`, `country`.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsAggregationQuery",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityIncidentsAggregationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nFetch security incidents for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityIncidentsAggregationRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsAggregationQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Aggregation resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "aggregation"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "aggregation"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/incidents/scroll": {
      "get": {
        "summary": "Security Incidents Scroll Query.",
        "description": "Scroll request is used to fetch large number of security incidents in multiple batches with each SecurityIncidentsResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSecurityIncidentsScrollRequest. Use the scroll_id returned in the SecurityIncidentsResponse to fetch the next batch\nof security incidents and one can continue this process till the scroll_id returned is \"\" which indicates no more\nevents to scroll.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsScrollQuery_get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityIncidentsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nFetch security incidents for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          },
          {
            "name": "scroll_id",
            "description": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "in": "query",
            "required": false,
            "x-displayname": "Scroll ID",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsScrollQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "post": {
        "summary": "Security Incidents Scroll Query.",
        "description": "Scroll request is used to fetch large number of security incidents in multiple batches with each SecurityIncidentsResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSecurityIncidentsScrollRequest. Use the scroll_id returned in the SecurityIncidentsResponse to fetch the next batch\nof security incidents and one can continue this process till the scroll_id returned is \"\" which indicates no more\nevents to scroll.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsScrollQuery_post",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityIncidentsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nFetch security incidents for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityIncidentsScrollRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityIncidentsScrollQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Scroll resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "scroll"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "scroll"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/metrics": {
      "post": {
        "summary": "Security Events Metrics.",
        "description": "GET the number of security events for a given namespace.\nSecurity events can be aggregated across multiple dimensions like VIRTUAL_HOST, SITE, SEC_EVENT_TYPE, etc.,.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsMetrics",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySecurityEventsCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nnamespace is used to scope the security events for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySecurityEventsCountRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SecurityEventsMetrics",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Metric resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "metric"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "metric"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/search/loadbalancers": {
      "post": {
        "summary": "Search load balancers.",
        "description": "GET list of virtual hosts matching label filter.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SearchLoadBalancers",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySearchLoadBalancersResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySearchLoadBalancersRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SearchLoadBalancers",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Load balancing configuration for traffic distribution",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Loadbalancer resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/suspicious_user_logs": {
      "post": {
        "summary": "Suspicious User Logs Query.",
        "description": "GET suspicious user logs for the given namespace.\nFor `system` namespace, all suspicious users logs for the tenant matching the query specified\nin the request will be returned in the response. User may query suspicious user logs that matches various\nfields such as `vh_name`, `user`, `site`, `city`, `country`.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsQuery",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySuspiciousUserLogsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nfetch suspicious user logs for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySuspiciousUserLogsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Logging configuration for audit and analysis",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suspicious-user-log resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suspicious-user-log"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suspicious-user-log"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/suspicious_user_logs/aggregation": {
      "post": {
        "summary": "Suspicious User Logs Aggregation Query.",
        "description": "GET summary/aggregation data for suspicious user logs in the given namespace.\nFor `system` namespace, all suspicious user logs for the tenant matching the query specified\nin the request will be considered for aggregation. User may query suspicious user logs that matches various\nfields such as `vh_name`, `user`, `site`, `city`, `country`.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsAggregationQuery",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySuspiciousUserLogsAggregationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nfetch suspicious user logs for a given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySuspiciousUserLogsAggregationRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsAggregationQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Aggregation resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "aggregation"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "aggregation"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/app_security/suspicious_user_logs/scroll": {
      "get": {
        "summary": "Suspicious User Logs Scroll Query.",
        "description": "Scroll request is used to fetch large number of suspicious user logs in multiple batches with each SuspiciousUserLogsResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSuspiciousUserLogsScrollRequest. Use the scroll_id returned in the SuspiciousUserLogsResponse to fetch the next batch of logs\nand one can continue this process till the scroll_id returned is \"\" which indicates no more logs to scroll.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsScrollQuery_get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySuspiciousUserLogsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nfetch the next batch of suspicious user logs scoped by namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          },
          {
            "name": "scroll_id",
            "description": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "in": "query",
            "required": false,
            "x-displayname": "Scroll ID",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsScrollQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "post": {
        "summary": "Suspicious User Logs Scroll Query.",
        "description": "Scroll request is used to fetch large number of suspicious user logs in multiple batches with each SuspiciousUserLogsResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSuspiciousUserLogsScrollRequest. Use the scroll_id returned in the SuspiciousUserLogsResponse to fetch the next batch of logs\nand one can continue this process till the scroll_id returned is \"\" which indicates no more logs to scroll.",
        "operationId": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsScrollQuery_post",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securitySuspiciousUserLogsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nfetch the next batch of suspicious user logs scoped by namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securitySuspiciousUserLogsScrollRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityMonitoringAPI.SuspiciousUserLogsScrollQuery",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Scroll resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "scroll"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "scroll"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/api_endpoint_protection/suggestion": {
      "post": {
        "summary": "Suggest API endpoint protection rule.",
        "description": "Suggest API endpoint protection rule for a given path\nDEPRECATED. Use api_sec.rule_suggestion.rulesuggestionapi.getsuggestedapiendpointprotectionrule.",
        "operationId": "ves.io.schema.app_security.APIEndpointProtectionRuleSuggestionAPI.GetSuggestedAPIEndpointProtectionRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedAPIEndpointProtectionRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for which this API endpoint protection rule applied.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedAPIEndpointProtectionRuleReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "Use GetSuggestedAPIEndpointProtectionRule in RuleSuggestionAPI",
        "x-ves-proto-rpc": "ves.io.schema.app_security.APIEndpointProtectionRuleSuggestionAPI.GetSuggestedAPIEndpointProtectionRule",
        "tags": [
          "config"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.APIEndpointProtectionRuleSuggestionAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/block_client/suggestion": {
      "post": {
        "summary": "Suggest block client rule.",
        "description": "Suggest blocking SimpleClientSrcRule for a given IP/ASN.",
        "operationId": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedBlockClientRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedBlockClientRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for which this WAF exclusion will be applied.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedBlockClientRuleReq"
              }
            }
          },
          "required": true
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedBlockClientRule",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityClientRuleAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/data_exposure/suggestion": {
      "post": {
        "summary": "Suggest sensitive data rule.",
        "description": "Suggest sensitive data rule for a given path\nDEPRECATED. Use api_sec.rule_suggestion.rulesuggestionapi.getsuggestedsensitivedatarule.",
        "operationId": "ves.io.schema.app_security.APISensitiveDataRuleSuggestionAPI.GetSuggestedSensitiveDataRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedSensitiveDataRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for which this sensitive data rule applied.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedSensitiveDataRuleReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "Use GetSuggestedSensitiveDataRule in RuleSuggestionAPI",
        "x-ves-proto-rpc": "ves.io.schema.app_security.APISensitiveDataRuleSuggestionAPI.GetSuggestedSensitiveDataRule",
        "tags": [
          "config"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.APISensitiveDataRuleSuggestionAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/ddos_mitigation/suggestion": {
      "post": {
        "summary": "Suggest DDoS Mitigation rule.",
        "description": "Suggest DDoSMitigatonRule to mitigate a given IP/ASN/Region/TLS.",
        "operationId": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedDDoSMitigationRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedDDoSMitigtionRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nload balancer for which this WAF exclusion will be applied.",
            "in": "path",
            "required": true,
            "x-displayname": "Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedDDoSMitigtionRuleReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedDDoSMitigationRule",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityClientRuleAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/oas_validation/suggestion": {
      "post": {
        "summary": "Suggest Open API specification validation rule.",
        "description": "Suggest Open API specification validation rule for a given path\nDEPRECATED. Use api_sec.rule_suggestion.rulesuggestionapi.getsuggestedoasvalidationrule.",
        "operationId": "ves.io.schema.app_security.OasValidationSuggestionAPI.GetSuggestedOasValidationRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedOasValidationRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for which this Open API specification validation rule applied.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedOasValidationRuleReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "Use GetSuggestedOasValidationRule in RuleSuggestionAPI",
        "x-ves-proto-rpc": "ves.io.schema.app_security.OasValidationSuggestionAPI.GetSuggestedOasValidationRule",
        "tags": [
          "config"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.OasValidationSuggestionAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/rate_limit/suggestion": {
      "post": {
        "summary": "Suggest rate limit rule.",
        "description": "Suggest rate limit rule for a given path\nDEPRECATED. Use api_sec.rule_suggestion.rulesuggestionapi.getsuggestedratelimitrule.",
        "operationId": "ves.io.schema.app_security.APIRateLimitRuleSuggestionAPI.GetSuggestedRateLimitRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedRateLimitRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for which this rate limit rule applied.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedRateLimitRuleReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "Use GetSuggestedRateLimitRule in RuleSuggestionAPI",
        "x-ves-proto-rpc": "ves.io.schema.app_security.APIRateLimitRuleSuggestionAPI.GetSuggestedRateLimitRule",
        "tags": [
          "config"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.APIRateLimitRuleSuggestionAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/trust_client/suggestion": {
      "post": {
        "summary": "Suggest trust client rule.",
        "description": "Suggest SimpleClientSrcRule to trust a given IP/ASN.",
        "operationId": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedTrustClientRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedTrustClientRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for which this client blocking rule will be applied.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedTrustClientRuleReq"
              }
            }
          },
          "required": true
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityClientRuleAPI.GetSuggestedTrustClientRule",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityClientRuleAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/waf_exclusion/suggestion": {
      "post": {
        "summary": "Suggest WAF Exclusion Rule.",
        "description": "Suggest service policy rule to set up WAF exclusion for a given WAF security event.",
        "operationId": "ves.io.schema.app_security.AppSecurityWafExclusionAPI.GetSuggestedWAFExclusionRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/app_securityGetSuggestedWAFExclusionRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for which this WAF exclusion will be applied.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP Load Balancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ves-io-frontend"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/app_securityGetSuggestedWAFExclusionRuleReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.app_security.AppSecurityWafExclusionAPI.GetSuggestedWAFExclusionRule",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Suggestion resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "suggestion"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "suggestion"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Application Security Monitoring APIs.",
      "x-ves-proto-service": "ves.io.schema.app_security.AppSecurityWafExclusionAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/clusters": {
      "post": {
        "summary": "Create Cluster.",
        "description": "Create cluster will create the object in the storage backend for namespace metadata.namespace.",
        "operationId": "ves.io.schema.cluster.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clusterCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clusterCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.cluster.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend cluster for distributed service deployment",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Cluster resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "cluster"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "cluster"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Cluster",
      "x-ves-proto-service": "ves.io.schema.cluster.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/clusters/{metadata.name}": {
      "put": {
        "summary": "Replace Cluster.",
        "description": "Replacing an cluster object will update the object by replacing the existing spec with the provided one.\nFor read-then-write operations a resourceVersion mismatch will occur if the object was modified between the read and write.",
        "operationId": "ves.io.schema.cluster.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clusterReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clusterReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.cluster.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend cluster for distributed service deployment",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "cluster"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "cluster"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Cluster",
      "x-ves-proto-service": "ves.io.schema.cluster.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/clusters": {
      "get": {
        "summary": "List Cluster.",
        "description": "List the set of cluster in a namespace.",
        "operationId": "ves.io.schema.cluster.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clusterListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of cluster.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.cluster.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend cluster for distributed service deployment",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Cluster",
      "x-ves-proto-service": "ves.io.schema.cluster.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/clusters/{name}": {
      "get": {
        "summary": "GET Cluster.",
        "description": "GET cluster will GET the object from the storage backend for namespace metadata.namespace.",
        "operationId": "ves.io.schema.cluster.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/clusterGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.cluster.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend cluster for distributed service deployment",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Cluster.",
        "description": "DELETE the specified cluster.",
        "operationId": "ves.io.schema.cluster.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/clusterDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.cluster.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend cluster for distributed service deployment",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "cluster",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "cluster",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Cluster",
      "x-ves-proto-service": "ves.io.schema.cluster.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/http_loadbalancers": {
      "post": {
        "summary": "Create HTTP Load Balancer.",
        "description": "Shape of the HTTP load balancer specification.",
        "operationId": "ves.io.schema.views.http_loadbalancer.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "HTTP/HTTPS load balancer with origin pools and routing rules",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Http-loadbalancer resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "http-loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "http-loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/http_loadbalancers/{metadata.name}": {
      "put": {
        "summary": "Replace HTTP Load Balancer.",
        "description": "Shape of the HTTP load balancer specification.",
        "operationId": "ves.io.schema.views.http_loadbalancer.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "HTTP/HTTPS load balancer with origin pools and routing rules",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "http-loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "http-loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers": {
      "get": {
        "summary": "List Configure HTTP Load Balancer.",
        "description": "List the set of http_loadbalancer in a namespace.",
        "operationId": "ves.io.schema.views.http_loadbalancer.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of http_loadbalancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "HTTP/HTTPS load balancer with origin pools and routing rules",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/get_security_config": {
      "post": {
        "summary": "GET Security Config for HTTP Load Balancer.",
        "description": "Fetch the corresponding Security Config for the given HTTP load balancers.",
        "operationId": "ves.io.schema.views.http_loadbalancer.CustomAPI.GetSecurityConfig",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/common_securityGetSecurityConfigRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the HTTP Load Balancer for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerGetSecurityConfigReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CustomAPI.GetSecurityConfig",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Security configuration retrieval",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Get-security-config resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "get-security-config"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "get-security-config"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}": {
      "get": {
        "summary": "GET HTTP Load Balancer.",
        "description": "Shape of the HTTP load balancer specification.",
        "operationId": "ves.io.schema.views.http_loadbalancer.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "HTTP/HTTPS load balancer with origin pools and routing rules",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Configure HTTP Load Balancer.",
        "description": "DELETE the specified http_loadbalancer.",
        "operationId": "ves.io.schema.views.http_loadbalancer.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "HTTP/HTTPS load balancer with origin pools and routing rules",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "http-loadbalancer",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "http-loadbalancer",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/api_definitions/assign": {
      "post": {
        "summary": "Assign API Definition.",
        "description": "Set a reference to the API Definition, with an option to create an empty one if not exists.\nDEPRECATED. Instead use virtual host public custom API - AssignAPIDefinition.",
        "operationId": "ves.io.schema.views.http_loadbalancer.CustomAPI.AssignAPIDefinition",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerAssignAPIDefinitionResp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the HTTP Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nName of the HTTP Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerAssignAPIDefinitionReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "instead use virtual host public custom api - AssignAPIDefinition",
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CustomAPI.AssignAPIDefinition",
        "tags": [
          "config"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Assign resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "assign"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "assign"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/api_definitions/available": {
      "get": {
        "summary": "List Available API Definitions.",
        "description": "List API definitions suitable for API Inventory management\nAPI Definitions which are associated at most with one app type.\nDEPRECATED: instead use ListAvailableAPIDefinitions in VES.I/o.schema.views.api_definition.publicconfigcustomapi.",
        "operationId": "ves.io.schema.views.http_loadbalancer.CustomAPI.ListAvailableAPIDefinitions",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerListAvailableAPIDefinitionsResp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the HTTP Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nName of the HTTP Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "instead use public crud api definition - GET List",
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CustomAPI.ListAvailableAPIDefinitions",
        "tags": [
          "config"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_endpoints": {
      "post": {
        "summary": "GET API Endpoints.",
        "description": "GET list of all API Endpoints associated with the HTTP loadbalancer in format suitable for API Groups management.\nDeprecated: instead use GetAPIEndpoints in VES.I/o.schema.virtual_host.apiepcustomapi.",
        "operationId": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsForGroups",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerGetAPIEndpointsForGroupsRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the HTTP LoadBalancer for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "HTTP LoadBalancer Name\nHTTP LoadBalancer for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "HTTP LoadBalancer Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerGetAPIEndpointsForGroupsReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "Use GetAPIEndpoints in virtual_host.ApiepCustomAPI",
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsForGroups",
        "tags": [
          "ml"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "API endpoint configuration for traffic management",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Api-endpoint resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "api-endpoint"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "api-endpoint"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_endpoints/swagger_spec": {
      "get": {
        "summary": "GET Swagger Spec for HTTP Load Balancer.",
        "description": "GET the corresponding Swagger spec for the given HTTP load balancer.",
        "operationId": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetSwaggerSpec",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/apiHttpBody"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the HTTP Load Balancer for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nHTTP load balancer for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetSwaggerSpec",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_inventory/api_endpoints/get_schema_updates": {
      "post": {
        "summary": "GET API Endpoints Schema Updates.",
        "description": "GET list of schema pairs, current and updated, for each endpoint in the request\nor all pending changes if empty list is provided.\nNOTE: any API endpoint defined in user swagger files should be ignored\nDEPRECATED. USE virtual host custom API GetAPIEndpointsSchemaUpdates.",
        "operationId": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsSchemaUpdates",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerGetAPIEndpointsSchemaUpdatesResp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace of the HTTP Loadbalancer for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the HTTP Loadbalancer for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerGetAPIEndpointsSchemaUpdatesReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "USE virtual host custom api GetAPIEndpointsSchemaUpdates",
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.GetAPIEndpointsSchemaUpdates",
        "tags": [
          "ml"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Get-schema-update resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "get-schema-update"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "get-schema-update"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/http_loadbalancers/{name}/api_inventory/api_endpoints/update_schemas": {
      "post": {
        "summary": "Update API Endpoints Schemas.",
        "description": "Update the payload schema for the specified endpoints or all pending changes if empty list is provided.\nNOTE: only API endpoints returned by a call to `GetAPIEndpointsSchemaStates` can be updated.\nDEPRECATED. USE virtual host custom API UpdateAPIEndpointsSchemas.",
        "operationId": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.UpdateAPIEndpointsSchemas",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerUpdateAPIEndpointsSchemasResp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace of the HTTP Loadbalancer for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the HTTP Loadbalancer for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerUpdateAPIEndpointsSchemasReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-deprecated": "USE virtual host custom api UpdateAPIEndpointsSchemas",
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI.UpdateAPIEndpointsSchemas",
        "tags": [
          "ml"
        ],
        "deprecated": true,
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Update-schema resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "update-schema"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "update-schema"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.ApiepLBCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/dos_automitigation_rules": {
      "get": {
        "summary": "GET DoS Auto-Mitigation Rules for HTTP Load Balancer.",
        "description": "GET the corresponding DoS Auto-Mitigation Rules for the given HTTP load balancer.",
        "operationId": "ves.io.schema.views.http_loadbalancer.CustomAPI.GetDoSAutoMitigationRules",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/common_securityGetDoSAutoMitigationRulesRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nName of the Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CustomAPI.GetDoSAutoMitigationRules",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Automated DDoS mitigation rule configuration",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/dos_automitigation_rules/{dos_automitigation_rule_name}": {
      "delete": {
        "summary": "DELETE DoS Auto-Mitigation Rule for HTTP Load Balancer.",
        "description": "DELETE the corresponding DoS Auto-Mitigation Rule for the given HTTP load balancer.",
        "operationId": "ves.io.schema.views.http_loadbalancer.CustomAPI.DeleteDoSAutoMitigationRule",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/common_securityDeleteDoSAutoMitigationRuleRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nName of the Load Balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "dos_automitigation_rule_name",
            "description": "DoS Mitigation Rule Name\nName of the DoS Mitigation Rule.",
            "in": "path",
            "required": true,
            "x-displayname": "DoS Mitigation Rule Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "dos-auto-mitigation-ves-io-http-loadbalancer-ce22"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CustomAPI.DeleteDoSAutoMitigationRule",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Automated DDoS mitigation rule configuration",
          "required_fields": [
            "path.dos_automitigation_rule_name",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "dos-automitigation-rule",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.dos_automitigation_rule_name",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "dos-automitigation-rule",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/get-dns-info": {
      "get": {
        "summary": "GET DNS Info.",
        "description": "GetDnsInfo is an API to GET DNS information for a given HTTP load balancer.",
        "operationId": "ves.io.schema.views.http_loadbalancer.CustomAPI.GetDnsInfo",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerGetDnsInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace for the HTTP load balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          },
          {
            "name": "name",
            "description": "Name\nName of the HTTP load balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CustomAPI.GetDnsInfo",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS configuration for name resolution",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/http_loadbalancers/{name}/l7ddos_rps_threshold": {
      "post": {
        "summary": "Set L7 DDoS RPS Threshold.",
        "description": "Sets the L7 DDoS RPS threshold for HTTP load balancer.",
        "operationId": "ves.io.schema.views.http_loadbalancer.CustomAPI.SetL7DDoSRPSThreshold",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/http_loadbalancerSetL7DDoSRPSThresholdRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nx-required\nNamespace scope of the request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "default"
          },
          {
            "name": "name",
            "description": "Name\nx-required\nName of the HTTP loadbalancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "lb_name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/http_loadbalancerSetL7DDoSRPSThresholdReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.http_loadbalancer.CustomAPI.SetL7DDoSRPSThreshold",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 7 DDoS requests-per-second threshold",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "L7ddos-rps-threshold resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "l7ddos-rps-threshold"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "l7ddos-rps-threshold"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure HTTP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.http_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/protocol_inspections": {
      "post": {
        "summary": "Create Protocol Inspection.",
        "description": "Create Protocol Inspection Specification in a given namespace. If one already exists it will give an error.",
        "operationId": "ves.io.schema.protocol_inspection.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/protocol_inspectionCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/protocol_inspectionCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.protocol_inspection.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Protocol-inspection resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "protocol-inspection"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "protocol-inspection"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure Protocol Inspection.",
      "x-ves-proto-service": "ves.io.schema.protocol_inspection.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/protocol_inspections/{metadata.name}": {
      "put": {
        "summary": "Replace Protocol Inspection.",
        "description": "Replace Protocol Inspection specification in a given namespace.",
        "operationId": "ves.io.schema.protocol_inspection.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/protocol_inspectionReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/protocol_inspectionReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.protocol_inspection.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource replacement operation",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "protocol-inspection"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "protocol-inspection"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure Protocol Inspection.",
      "x-ves-proto-service": "ves.io.schema.protocol_inspection.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/protocol_inspections": {
      "get": {
        "summary": "List Configure Protocol Inspection.",
        "description": "List the set of protocol_inspection in a namespace.",
        "operationId": "ves.io.schema.protocol_inspection.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/protocol_inspectionListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of protocol_inspection.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.protocol_inspection.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure Protocol Inspection.",
      "x-ves-proto-service": "ves.io.schema.protocol_inspection.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/protocol_inspections/{name}": {
      "get": {
        "summary": "GET Protocol Inspection.",
        "description": "GET Protocol Inspection details.",
        "operationId": "ves.io.schema.protocol_inspection.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/protocol_inspectionGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.protocol_inspection.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Configure Protocol Inspection.",
        "description": "DELETE the specified protocol_inspection.",
        "operationId": "ves.io.schema.protocol_inspection.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/protocol_inspectionDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.protocol_inspection.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource deletion operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "protocol-inspection",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "protocol-inspection",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure Protocol Inspection.",
      "x-ves-proto-service": "ves.io.schema.protocol_inspection.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/tcp_loadbalancers": {
      "post": {
        "summary": "Create TCP Load Balancer.",
        "description": "Shape of the TCP load balancer create specification.",
        "operationId": "ves.io.schema.views.tcp_loadbalancer.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tcp_loadbalancerCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tcp_loadbalancerCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.tcp_loadbalancer.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 TCP load balancer for non-HTTP traffic",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Tcp-loadbalancer resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "tcp-loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "tcp-loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure TCP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.tcp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/tcp_loadbalancers/{metadata.name}": {
      "put": {
        "summary": "Replace TCP Load Balancer.",
        "description": "Shape of the TCP load balancer replace specification.",
        "operationId": "ves.io.schema.views.tcp_loadbalancer.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tcp_loadbalancerReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tcp_loadbalancerReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.tcp_loadbalancer.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 TCP load balancer for non-HTTP traffic",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "tcp-loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "tcp-loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure TCP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.tcp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/tcp_loadbalancers": {
      "get": {
        "summary": "List Configure TCP Load Balancer.",
        "description": "List the set of tcp_loadbalancer in a namespace.",
        "operationId": "ves.io.schema.views.tcp_loadbalancer.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tcp_loadbalancerListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of tcp_loadbalancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.tcp_loadbalancer.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 TCP load balancer for non-HTTP traffic",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure TCP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.tcp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/tcp_loadbalancers/{name}": {
      "get": {
        "summary": "GET TCP Load Balancer.",
        "description": "Shape of the TCP load balancer GET specification.",
        "operationId": "ves.io.schema.views.tcp_loadbalancer.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tcp_loadbalancerGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.tcp_loadbalancer.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 TCP load balancer for non-HTTP traffic",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Configure TCP Load Balancer.",
        "description": "DELETE the specified tcp_loadbalancer.",
        "operationId": "ves.io.schema.views.tcp_loadbalancer.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/tcp_loadbalancerDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.tcp_loadbalancer.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 TCP load balancer for non-HTTP traffic",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "tcp-loadbalancer",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "tcp-loadbalancer",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure TCP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.tcp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/tcp_loadbalancers/{name}/get-dns-info": {
      "get": {
        "summary": "GET DNS Info.",
        "description": "GetDnsInfo is an API to GET DNS information for a given TCP load balancer.",
        "operationId": "ves.io.schema.views.tcp_loadbalancer.CustomAPI.GetDnsInfo",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/tcp_loadbalancerGetDnsInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace for the TCP load balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          },
          {
            "name": "name",
            "description": "Name\nName of the TCP load balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.tcp_loadbalancer.CustomAPI.GetDnsInfo",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS configuration for name resolution",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure TCP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.tcp_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/udp_loadbalancers": {
      "post": {
        "summary": "Create UDP Load Balancer.",
        "description": "Shape of the UDP load balancer create specification.",
        "operationId": "ves.io.schema.views.udp_loadbalancer.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/udp_loadbalancerCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/udp_loadbalancerCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.udp_loadbalancer.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 UDP load balancer for stateless protocols",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Udp-loadbalancer resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "udp-loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "udp-loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure UDP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.udp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/udp_loadbalancers/{metadata.name}": {
      "put": {
        "summary": "Replace UDP Load Balancer.",
        "description": "Shape of the UDP load balancer replace specification.",
        "operationId": "ves.io.schema.views.udp_loadbalancer.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/udp_loadbalancerReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/udp_loadbalancerReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.udp_loadbalancer.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 UDP load balancer for stateless protocols",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "udp-loadbalancer"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "udp-loadbalancer"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure UDP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.udp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/udp_loadbalancers": {
      "get": {
        "summary": "List Configure UDP Load Balancer.",
        "description": "List the set of udp_loadbalancer in a namespace.",
        "operationId": "ves.io.schema.views.udp_loadbalancer.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/udp_loadbalancerListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of udp_loadbalancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.udp_loadbalancer.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 UDP load balancer for stateless protocols",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure UDP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.udp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/udp_loadbalancers/{name}": {
      "get": {
        "summary": "GET UDP Load Balancer.",
        "description": "Shape of the UDP load balancer GET specification.",
        "operationId": "ves.io.schema.views.udp_loadbalancer.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/udp_loadbalancerGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.udp_loadbalancer.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 UDP load balancer for stateless protocols",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Configure UDP Load Balancer.",
        "description": "DELETE the specified udp_loadbalancer.",
        "operationId": "ves.io.schema.views.udp_loadbalancer.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/udp_loadbalancerDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.udp_loadbalancer.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Layer 4 UDP load balancer for stateless protocols",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "udp-loadbalancer",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "udp-loadbalancer",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure UDP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.udp_loadbalancer.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/udp_loadbalancers/{name}/get-dns-info": {
      "get": {
        "summary": "GET DNS Info.",
        "description": "GetDnsInfo is an API to GET DNS information for a given UDP load balancer.",
        "operationId": "ves.io.schema.views.udp_loadbalancer.CustomAPI.GetDnsInfo",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/udp_loadbalancerGetDnsInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace for the UDP load balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          },
          {
            "name": "name",
            "description": "Name\nName of the UDP load balancer.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.udp_loadbalancer.CustomAPI.GetDnsInfo",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS configuration for name resolution",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Configure UDP Load Balancer.",
      "x-ves-proto-service": "ves.io.schema.views.udp_loadbalancer.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/enhanced_firewall_policys": {
      "post": {
        "summary": "Create Enhanced Firewall Policy.",
        "description": "Shape of Enhanced Firewall Policy specification.",
        "operationId": "ves.io.schema.enhanced_firewall_policy.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/enhanced_firewall_policyCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/enhanced_firewall_policyCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.enhanced_firewall_policy.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Enhanced-firewall-policy resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "enhanced-firewall-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "enhanced-firewall-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Enhanced Firewall Policy.",
      "x-ves-proto-service": "ves.io.schema.enhanced_firewall_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/enhanced_firewall_policys/{metadata.name}": {
      "put": {
        "summary": "Replace Enhanced Firewall Policy.",
        "description": "Shape of Enhanced Firewall Policy replace specification.",
        "operationId": "ves.io.schema.enhanced_firewall_policy.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/enhanced_firewall_policyReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/enhanced_firewall_policyReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.enhanced_firewall_policy.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "enhanced-firewall-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "enhanced-firewall-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Enhanced Firewall Policy.",
      "x-ves-proto-service": "ves.io.schema.enhanced_firewall_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/enhanced_firewall_policy/hits": {
      "post": {
        "summary": "Enhanced Firewall Policy Hits.",
        "description": "GET the counter for Enhanced Firewall Policy hits for a given namespace.",
        "operationId": "ves.io.schema.enhanced_firewall_policy.CustomDataAPI.EnhancedFirewallPolicyHits",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyHitsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace is used to scope Enhanced Firewall Policy hits for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyHitsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.enhanced_firewall_policy.CustomDataAPI.EnhancedFirewallPolicyHits",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Hit resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "hit"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "hit"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Enhanced Firewall Policy.",
      "x-ves-proto-service": "ves.io.schema.enhanced_firewall_policy.CustomDataAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/enhanced_firewall_policys": {
      "get": {
        "summary": "List Enhanced Firewall Policy.",
        "description": "List the set of enhanced_firewall_policy in a namespace.",
        "operationId": "ves.io.schema.enhanced_firewall_policy.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/enhanced_firewall_policyListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of enhanced_firewall_policy.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.enhanced_firewall_policy.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Enhanced Firewall Policy.",
      "x-ves-proto-service": "ves.io.schema.enhanced_firewall_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/enhanced_firewall_policys/{name}": {
      "get": {
        "summary": "GET Enhanced Firewall Policy.",
        "description": "Shape of the Enhanced Firewall Policy specification.",
        "operationId": "ves.io.schema.enhanced_firewall_policy.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/enhanced_firewall_policyGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.enhanced_firewall_policy.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Enhanced Firewall Policy.",
        "description": "DELETE the specified enhanced_firewall_policy.",
        "operationId": "ves.io.schema.enhanced_firewall_policy.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/enhanced_firewall_policyDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.enhanced_firewall_policy.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "enhanced-firewall-policy",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "enhanced-firewall-policy",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Enhanced Firewall Policy.",
      "x-ves-proto-service": "ves.io.schema.enhanced_firewall_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/system/malware_protection/addon/subscribe": {
      "post": {
        "summary": "Subscribe to Malware Protection.",
        "description": "Subscribe to Malware Protection.",
        "operationId": "ves.io.schema.malware_protection.subscription.CustomAPI.Subscribe",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/subscriptionSubscribeResponse__ves_io_schema_malware_protection_subscription"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/subscriptionSubscribeRequest__ves_io_schema_malware_protection_subscription"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.malware_protection.subscription.CustomAPI.Subscribe",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Subscribe resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "subscribe"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "subscribe"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "F5XC Malware Protection Subscription API.",
      "x-ves-proto-service": "ves.io.schema.malware_protection.subscription.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/system/malware_protection/addon/unsubscribe": {
      "post": {
        "summary": "Unsubscribe to Malware Protection.",
        "description": "Unsubscribe to Malware Protection.",
        "operationId": "ves.io.schema.malware_protection.subscription.CustomAPI.Unsubscribe",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/subscriptionUnsubscribeResponse__ves_io_schema_malware_protection_subscription"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/subscriptionUnsubscribeRequest__ves_io_schema_malware_protection_subscription"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.malware_protection.subscription.CustomAPI.Unsubscribe",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Unsubscribe resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "unsubscribe"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "unsubscribe"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "F5XC Malware Protection Subscription API.",
      "x-ves-proto-service": "ves.io.schema.malware_protection.subscription.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/dns/namespaces/{metadata.namespace}/geo_location_sets": {
      "post": {
        "summary": "Create Geolocation.",
        "description": "Creates a Geolocation Set.",
        "operationId": "ves.io.schema.geo_location_set.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/geo_location_setCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/geo_location_setCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.geo_location_set.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Geographic location set for geo-based routing",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Geo-location-set resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "geo-location-set"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "geo-location-set"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Geolocation Set.",
      "x-ves-proto-service": "ves.io.schema.geo_location_set.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/dns/namespaces/{metadata.namespace}/geo_location_sets/{metadata.name}": {
      "put": {
        "summary": "Replace Geolocation Set.",
        "description": "Amends a Geolocation Set.",
        "operationId": "ves.io.schema.geo_location_set.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/geo_location_setReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/geo_location_setReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.geo_location_set.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Geographic location set for geo-based routing",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "geo-location-set"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "geo-location-set"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Geolocation Set.",
      "x-ves-proto-service": "ves.io.schema.geo_location_set.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/dns/namespaces/{namespace}/geo_location_sets": {
      "get": {
        "summary": "List Geolocation Set.",
        "description": "List the set of geo_location_set in a namespace.",
        "operationId": "ves.io.schema.geo_location_set.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/geo_location_setListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of geo_location_set.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.geo_location_set.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Geographic location set for geo-based routing",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Geolocation Set.",
      "x-ves-proto-service": "ves.io.schema.geo_location_set.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/dns/namespaces/{namespace}/geo_location_sets/{name}": {
      "get": {
        "summary": "GET Geolocation Set.",
        "description": "Reads a Geolocation.",
        "operationId": "ves.io.schema.geo_location_set.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/geo_location_setGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.geo_location_set.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Geographic location set for geo-based routing",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Geolocation Set.",
        "description": "DELETE the specified geo_location_set.",
        "operationId": "ves.io.schema.geo_location_set.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/geo_location_setDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.geo_location_set.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Geographic location set for geo-based routing",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "geo-location-set",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "geo-location-set",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Geolocation Set.",
      "x-ves-proto-service": "ves.io.schema.geo_location_set.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/healthchecks": {
      "post": {
        "summary": "Create Health Check.",
        "description": "Healthcheck object defines method to determine if the given Endpoint is healthy.\nSingle Healthcheck object can be referred to by one or many Cluster objects.",
        "operationId": "ves.io.schema.healthcheck.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/healthcheckCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/healthcheckCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.healthcheck.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Endpoint health monitoring configuration",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Healthcheck resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "healthcheck"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "healthcheck"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Health Check.",
      "x-ves-proto-service": "ves.io.schema.healthcheck.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/healthchecks/{metadata.name}": {
      "put": {
        "summary": "Replace Health Check.",
        "description": "Healthcheck object defines method to determine if the given Endpoint is healthy.\nSingle Healthcheck object can be referred to by one or many Cluster objects.",
        "operationId": "ves.io.schema.healthcheck.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/healthcheckReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/healthcheckReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.healthcheck.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Endpoint health monitoring configuration",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "healthcheck"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "healthcheck"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Health Check.",
      "x-ves-proto-service": "ves.io.schema.healthcheck.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/healthchecks": {
      "get": {
        "summary": "List Health Check.",
        "description": "List the set of healthcheck in a namespace.",
        "operationId": "ves.io.schema.healthcheck.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/healthcheckListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of healthcheck.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.healthcheck.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Endpoint health monitoring configuration",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Health Check.",
      "x-ves-proto-service": "ves.io.schema.healthcheck.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/healthchecks/{name}": {
      "get": {
        "summary": "GET Health Check.",
        "description": "Healthcheck object defines method to determine if the given Endpoint is healthy.\nSingle Healthcheck object can be referred to by one or many Cluster objects.",
        "operationId": "ves.io.schema.healthcheck.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/healthcheckGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.healthcheck.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Endpoint health monitoring configuration",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Health Check.",
        "description": "DELETE the specified healthcheck.",
        "operationId": "ves.io.schema.healthcheck.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/healthcheckDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.healthcheck.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Endpoint health monitoring configuration",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "healthcheck",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "healthcheck",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Health Check.",
      "x-ves-proto-service": "ves.io.schema.healthcheck.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/origin_pools": {
      "post": {
        "summary": "Create Origin Pool.",
        "description": "Shape of the origin pool create specification.",
        "operationId": "ves.io.schema.views.origin_pool.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/origin_poolCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/origin_poolCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.origin_pool.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend server pool for load balancing and failover",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Valid origin targets"
            ],
            "postconditions": [
              "Origin-pool resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "origin-pool"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "origin-pool"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Origin Pool.",
      "x-ves-proto-service": "ves.io.schema.views.origin_pool.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/origin_pools/{metadata.name}": {
      "put": {
        "summary": "Replace Origin Pool.",
        "description": "Shape of the origin pool create specification.",
        "operationId": "ves.io.schema.views.origin_pool.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/origin_poolReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/origin_poolReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.origin_pool.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend server pool for load balancing and failover",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Valid origin targets"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "origin-pool"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "origin-pool"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Origin Pool.",
      "x-ves-proto-service": "ves.io.schema.views.origin_pool.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/origin_pools": {
      "get": {
        "summary": "List Origin Pool.",
        "description": "List the set of origin_pool in a namespace.",
        "operationId": "ves.io.schema.views.origin_pool.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/origin_poolListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of origin_pool.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.origin_pool.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend server pool for load balancing and failover",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Valid origin targets"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Origin Pool.",
      "x-ves-proto-service": "ves.io.schema.views.origin_pool.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/origin_pools/{name}": {
      "get": {
        "summary": "GET Origin Pool.",
        "description": "Shape of the origin pool GET specification.",
        "operationId": "ves.io.schema.views.origin_pool.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/origin_poolGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.origin_pool.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend server pool for load balancing and failover",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Valid origin targets"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Origin Pool.",
        "description": "DELETE the specified origin_pool.",
        "operationId": "ves.io.schema.views.origin_pool.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/origin_poolDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.origin_pool.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Backend server pool for load balancing and failover",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Valid origin targets"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "origin-pool",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "origin-pool",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Origin Pool.",
      "x-ves-proto-service": "ves.io.schema.views.origin_pool.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/proxys": {
      "post": {
        "summary": "Create Proxy.",
        "description": "Shape of the TCP loadbalancer create specification.",
        "operationId": "ves.io.schema.views.proxy.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxyCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/proxyCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.proxy.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic proxy for request forwarding and transformation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Proxy resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "proxy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "proxy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Proxy",
      "x-ves-proto-service": "ves.io.schema.views.proxy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/proxys/{metadata.name}": {
      "put": {
        "summary": "Replace Proxy.",
        "description": "Shape of the TCP loadbalancer replace specification.",
        "operationId": "ves.io.schema.views.proxy.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxyReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/proxyReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.proxy.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic proxy for request forwarding and transformation",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "proxy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "proxy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Proxy",
      "x-ves-proto-service": "ves.io.schema.views.proxy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/proxys": {
      "get": {
        "summary": "List Proxy.",
        "description": "List the set of proxy in a namespace.",
        "operationId": "ves.io.schema.views.proxy.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxyListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of proxy.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.proxy.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic proxy for request forwarding and transformation",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Proxy",
      "x-ves-proto-service": "ves.io.schema.views.proxy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/proxys/{name}": {
      "get": {
        "summary": "GET Proxy",
        "description": "Shape of the TCP loadbalancer GET specification.",
        "operationId": "ves.io.schema.views.proxy.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/proxyGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.proxy.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic proxy for request forwarding and transformation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Proxy.",
        "description": "DELETE the specified proxy.",
        "operationId": "ves.io.schema.views.proxy.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/proxyDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.proxy.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic proxy for request forwarding and transformation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "proxy",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "proxy",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Proxy",
      "x-ves-proto-service": "ves.io.schema.views.proxy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/proxys/{name}/ca_certificate": {
      "get": {
        "summary": "GET proxy Server CA Certificate.",
        "description": "GetProxyServerCACert returns PEM encoded proxy server CA certificate.",
        "operationId": "ves.io.schema.views.proxy.CustomAPI.GetProxyServerCACert",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/apiHttpBody"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the proxy object for the custom API.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.proxy.CustomAPI.GetProxyServerCACert",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Certificate authority certificate for trust chains",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Certificate file or data"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Proxy",
      "x-ves-proto-service": "ves.io.schema.views.proxy.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/rate_limiter_policys": {
      "post": {
        "summary": "Create Specification.",
        "description": "Shape of the Rate Limiter Policy Create specification.",
        "operationId": "ves.io.schema.views.rate_limiter_policy.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rate_limiter_policyCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/rate_limiter_policyCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.rate_limiter_policy.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Rate limiting policy for request throttling",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Rate-limiter-policy resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "rate-limiter-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "rate-limiter-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Rate Limiter Policy.",
      "x-ves-proto-service": "ves.io.schema.views.rate_limiter_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/rate_limiter_policys/{metadata.name}": {
      "put": {
        "summary": "Replace Specification.",
        "description": "Shape of the Rate Limiter Policy Replace specification.",
        "operationId": "ves.io.schema.views.rate_limiter_policy.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rate_limiter_policyReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/rate_limiter_policyReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.rate_limiter_policy.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Rate limiting policy for request throttling",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "rate-limiter-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "rate-limiter-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Rate Limiter Policy.",
      "x-ves-proto-service": "ves.io.schema.views.rate_limiter_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/rate_limiter_policys": {
      "get": {
        "summary": "List Rate Limiter Policy.",
        "description": "List the set of rate_limiter_policy in a namespace.",
        "operationId": "ves.io.schema.views.rate_limiter_policy.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rate_limiter_policyListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of rate_limiter_policy.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.rate_limiter_policy.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Rate limiting policy for request throttling",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Rate Limiter Policy.",
      "x-ves-proto-service": "ves.io.schema.views.rate_limiter_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/rate_limiter_policys/{name}": {
      "get": {
        "summary": "GET Specification.",
        "description": "Shape of the Rate Limiter Policy GET specification.",
        "operationId": "ves.io.schema.views.rate_limiter_policy.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/rate_limiter_policyGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.rate_limiter_policy.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Rate limiting policy for request throttling",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Rate Limiter Policy.",
        "description": "DELETE the specified rate_limiter_policy.",
        "operationId": "ves.io.schema.views.rate_limiter_policy.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/rate_limiter_policyDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.views.rate_limiter_policy.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Rate limiting policy for request throttling",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "rate-limiter-policy",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "rate-limiter-policy",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Rate Limiter Policy.",
      "x-ves-proto-service": "ves.io.schema.views.rate_limiter_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/service_policys": {
      "post": {
        "summary": "Create Service Policy.",
        "description": "Create service_policy creates a new object in the storage backend for metadata.namespace.",
        "operationId": "ves.io.schema.service_policy.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policyCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/service_policyCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/network_security/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic control policy with allow/deny rules",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Service-policy resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "service-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "service-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy.",
      "x-ves-proto-service": "ves.io.schema.service_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/service_policys/{metadata.name}": {
      "put": {
        "summary": "Replace Service Policy.",
        "description": "Replace service_policy replaces an existing object in the storage backend for metadata.namespace.",
        "operationId": "ves.io.schema.service_policy.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policyReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/service_policyReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/network_security/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic control policy with allow/deny rules",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "service-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "service-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy.",
      "x-ves-proto-service": "ves.io.schema.service_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/service_policys": {
      "get": {
        "summary": "List Service Policy.",
        "description": "List the set of service_policy in a namespace.",
        "operationId": "ves.io.schema.service_policy.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policyListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of service_policy.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/network_security/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic control policy with allow/deny rules",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy.",
      "x-ves-proto-service": "ves.io.schema.service_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/service_policys/{name}": {
      "get": {
        "summary": "GET Service Policy.",
        "description": "GET service_policy reads a given object from storage backend for metadata.namespace.",
        "operationId": "ves.io.schema.service_policy.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policyGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/network_security/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic control policy with allow/deny rules",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Service Policy.",
        "description": "DELETE the specified service_policy.",
        "operationId": "ves.io.schema.service_policy.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/service_policyDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/network_security/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Traffic control policy with allow/deny rules",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "service-policy",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "service-policy",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy.",
      "x-ves-proto-service": "ves.io.schema.service_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/service_policy_rules": {
      "post": {
        "summary": "Create Service Policy Rule.",
        "description": "Create service_policy_rule creates a new object in the storage backend for metadata.namespace.",
        "operationId": "ves.io.schema.service_policy_rule.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policy_ruleCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/service_policy_ruleCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy_rule.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Individual rule within a service policy",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Service-policy-rule resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "service-policy-rule"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "service-policy-rule"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy Rule.",
      "x-ves-proto-service": "ves.io.schema.service_policy_rule.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/service_policy_rules/{metadata.name}": {
      "put": {
        "summary": "Replace Service Policy Rule.",
        "description": "Replace service_policy_rule replaces an existing object in the storage backend for metadata.namespace.",
        "operationId": "ves.io.schema.service_policy_rule.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policy_ruleReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/service_policy_ruleReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy_rule.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Individual rule within a service policy",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "service-policy-rule"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "service-policy-rule"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy Rule.",
      "x-ves-proto-service": "ves.io.schema.service_policy_rule.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/service_policy_rules": {
      "get": {
        "summary": "List Service Policy Rule.",
        "description": "List the set of service_policy_rule in a namespace.",
        "operationId": "ves.io.schema.service_policy_rule.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policy_ruleListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of service_policy_rule.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy_rule.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Individual rule within a service policy",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy Rule.",
      "x-ves-proto-service": "ves.io.schema.service_policy_rule.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/service_policy_rules/{name}": {
      "get": {
        "summary": "GET Service Policy Rule.",
        "description": "GET service_policy_rule reads a given object from storage backend for metadata.namespace.",
        "operationId": "ves.io.schema.service_policy_rule.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policy_ruleGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy_rule.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Individual rule within a service policy",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Service Policy Rule.",
        "description": "DELETE the specified service_policy_rule.",
        "operationId": "ves.io.schema.service_policy_rule.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/service_policy_ruleDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy_rule.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Individual rule within a service policy",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "service-policy-rule",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "service-policy-rule",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy Rule.",
      "x-ves-proto-service": "ves.io.schema.service_policy_rule.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/service_policy_sets": {
      "get": {
        "summary": "List Service Policy Set.",
        "description": "List the set of service_policy_set in a namespace.",
        "operationId": "ves.io.schema.service_policy_set.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policy_setListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of service_policy_set.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy_set.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Collection of service policies for grouped application",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy Set.",
      "x-ves-proto-service": "ves.io.schema.service_policy_set.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/service_policy_sets/{name}": {
      "get": {
        "summary": "GET Service Policy Set.",
        "description": "GET service_policy_set reads a given object from storage backend for metadata.namespace.",
        "operationId": "ves.io.schema.service_policy_set.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/service_policy_setGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.service_policy_set.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Collection of service policies for grouped application",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Service Policy Set.",
      "x-ves-proto-service": "ves.io.schema.service_policy_set.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/virtual_hosts": {
      "post": {
        "summary": "Create Virtual Host.",
        "description": "Creates virtual host in a given namespace.",
        "operationId": "ves.io.schema.virtual_host.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS name mapping to routes and load balancers",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Virtual-host resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "virtual-host"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "virtual-host"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/virtual_hosts/{metadata.name}": {
      "put": {
        "summary": "Replace Virtual Host.",
        "description": "Replace a given virtual host in a given namespace.",
        "operationId": "ves.io.schema.virtual_host.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS name mapping to routes and load balancers",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "virtual-host"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "virtual-host"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/virtual_hosts": {
      "get": {
        "summary": "List Virtual Host.",
        "description": "List the set of virtual_host in a namespace.",
        "operationId": "ves.io.schema.virtual_host.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of virtual_host.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS name mapping to routes and load balancers",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/virtual_hosts/{name}": {
      "get": {
        "summary": "GET Virtual Host.",
        "description": "GET virtual host from a given namespace.",
        "operationId": "ves.io.schema.virtual_host.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS name mapping to routes and load balancers",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE Virtual Host.",
        "description": "DELETE the specified virtual_host.",
        "operationId": "ves.io.schema.virtual_host.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS name mapping to routes and load balancers",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "virtual-host",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "virtual-host",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/virtual_hosts/{name}/api_definitions/assign": {
      "post": {
        "summary": "Assign API Definition.",
        "description": "Set a reference to the API Definition, with an option to create an empty one if not exists.",
        "operationId": "ves.io.schema.virtual_host.CustomAPI.AssignAPIDefinition",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostAssignAPIDefinitionResp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the Virtual Hosts.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nName of the Virtual Hosts.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostAssignAPIDefinitionReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.CustomAPI.AssignAPIDefinition",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Assign resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "assign"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "assign"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoint": {
      "post": {
        "summary": "GET API Endpoint.",
        "description": "GET API endpoint for Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpoint",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostAPIEndpointRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostAPIEndpointReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpoint",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "API endpoint configuration for traffic management",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Api-endpoint resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "api-endpoint"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "api-endpoint"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoint/learnt_schema": {
      "get": {
        "summary": "GET GET Learnt Schema per API endpoint.",
        "description": "GET Learnt Schema per API endpoint for a given auto discovered API endpoint for Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpointLearntSchema",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostAPIEndpointLearntSchemaRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host\nVirtual Host Name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          },
          {
            "name": "collapsed_url",
            "description": "API endpoint for which PDFs are requested.",
            "in": "query",
            "required": false,
            "x-displayname": "API URL",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "api/v1/user_id/DYN/vehicle_id/DYN"
          },
          {
            "name": "method",
            "description": "Method of API endpoint for which PDFs are requested.",
            "in": "query",
            "required": false,
            "x-displayname": "Method",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "GET"
          },
          {
            "name": "domains",
            "description": "List of domains that needs to be sent as part of the request\nOptional filter by domains. If absent, all domains are considered.",
            "in": "query",
            "required": false,
            "x-displayname": "List of Domain.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "x-f5xc-example": "www.example.com"
          },
          {
            "name": "api_endpoint_info_request",
            "description": "List of additional things that needs to be sent as part of the request\n\nAPI ENDPOINT INFO NONE option is used to disable any additional info request per API endpoint response\nAPI ENDPOINT INFO PDF SPARKLINES option is used to enable pdf sparkline info along with the API endpoint response.",
            "in": "query",
            "required": false,
            "x-displayname": "API Endpoint Info PDF Sparklines.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "API_ENDPOINT_INFO_NONE",
                  "API_ENDPOINT_INFO_PDF_SPARKLINES"
                ]
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpointLearntSchema",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoint/pdf": {
      "get": {
        "summary": "GET API Endpoint PDF.",
        "description": "GET PDF of all metrics for a given auto discovered API endpoint for Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpointPDF",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostAPIEndpointPDFRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host\nVirtual Host Name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          },
          {
            "name": "collapsed_url",
            "description": "API endpoint for which PDFs are requested.",
            "in": "query",
            "required": false,
            "x-displayname": "API URL",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "api/v1/user_id/DYN/vehicle_id/DYN"
          },
          {
            "name": "method",
            "description": "Method of API endpoint for which PDFs are requested.",
            "in": "query",
            "required": false,
            "x-displayname": "Method",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "GET"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpointPDF",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoint/sources_openapi_schema": {
      "get": {
        "summary": "GET relevant source OpenApi schema per API endpoint.",
        "description": "GET openapi schema per API endpoint for a given source types and Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEPSourceOpenApiSchema",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostAPIEPSourceOpenApiSchemaRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host\nVirtual Host Name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          },
          {
            "name": "id",
            "description": "Endpoint ID.",
            "in": "query",
            "required": false,
            "x-displayname": "Endpoint ID.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "discovery_source_types",
            "description": "List of wanted discovery source types\n\nMerging all source types to one spec\nDiscovery spec from traffic data\nDiscovery spec from crawler engine\nDiscovery spec from code scan.",
            "in": "query",
            "required": false,
            "x-displayname": "Code Scan",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "MERGED",
                  "TRAFFIC",
                  "CRAWLER",
                  "CODE_SCAN"
                ]
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEPSourceOpenApiSchema",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoint/unmerge_sources_openapi_schema": {
      "post": {
        "summary": "Unmerge Source from API Endpoint.",
        "description": "Unmerge Source Discovered schema from API Endpoint merged schema.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.UnmergeAPIEPSourceOpenApiSchema",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostUnmergeAPIEPSourceOpenApiSchemaReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.UnmergeAPIEPSourceOpenApiSchema",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Unmerge-sources-openapi-schema resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "unmerge-sources-openapi-schema"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "unmerge-sources-openapi-schema"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoints": {
      "get": {
        "summary": "GET API Endpoints.",
        "description": "GET all autodiscovered API endpoints for Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpoints",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostAPIEndpointsRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          },
          {
            "name": "api_endpoint_info_request",
            "description": "List of additional things that needs to be sent as part of the request\n\nAPI ENDPOINT INFO NONE option is used to disable any additional info request per API endpoint response\nAPI ENDPOINT INFO PDF SPARKLINES option is used to enable pdf sparkline info along with the API endpoint response.",
            "in": "query",
            "required": false,
            "x-displayname": "API Endpoint Info PDF Sparklines.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "API_ENDPOINT_INFO_NONE",
                  "API_ENDPOINT_INFO_PDF_SPARKLINES"
                ]
              }
            }
          },
          {
            "name": "domains",
            "description": "List of domains that needs to be sent as part of the request\nOptional filter by domains. If absent, all domains are considered.",
            "in": "query",
            "required": false,
            "x-displayname": "List of Domain.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "x-f5xc-example": "www.example.com"
          },
          {
            "name": "start_time",
            "description": "Format: unix_timestamp|RFC 3339\nFilters the APIEPs with access time >= start_time. Considered only to calculate activity metrics, based on #sec-events and #requests.\nOptional: If not specified, then the start_time will be evaluated to end_time-2h\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "in": "query",
            "required": false,
            "x-displayname": "Start Time.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "2019-09-23T12:30:11.733Z"
          },
          {
            "name": "end_time",
            "description": "Format: unix_timestamp|RFC 3339\nFilters the APIEPs with access time < end_time. Considered only to calculate activity metrics, based on #sec-events and #requests.\nOptional: If not specified, then the end_time will be evaluated to start_time+2h\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "in": "query",
            "required": false,
            "x-displayname": "End Time",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "2019-09-24T12:30:11.733Z"
          },
          {
            "name": "apiep_category",
            "description": "Category of API endpoints. Can be DISCOVERED, INVENTORY or SHADOW API.\nOptional filter by api_category. If absent, endpoints of all categories are considered.\n\nDiscovered API Endpoint.\nThe API Endpoint is imported from user swagger.\nThe API Endpoint is present at the API Inventory.\nThe API Endpoint is considered as part of Shadow API.\nDeprecated API Endpoint.\nNon-API Endpoint.\n- APIEP_CATEGORY_DISCOVERY_POLICY: x-displayName: Policy\nUser-Defined Discovery Policy.",
            "in": "query",
            "required": false,
            "x-displayname": "Non-API Endpoint.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "APIEP_CATEGORY_DISCOVERED",
                  "APIEP_CATEGORY_SWAGGER",
                  "APIEP_CATEGORY_INVENTORY",
                  "APIEP_CATEGORY_SHADOW",
                  "APIEP_CATEGORY_DEPRECATED",
                  "APIEP_CATEGORY_NON_API",
                  "APIEP_CATEGORY_DISCOVERY_POLICY"
                ]
              }
            },
            "x-f5xc-example": "DISCOVERED"
          }
        ],
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpoints",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "API endpoint configuration for traffic management",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoints/stats": {
      "get": {
        "summary": "GET API Endpoints Stats for Virtual Host.",
        "description": "GET API endpoints stats for the given Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetApiEndpointsStats",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostApiEndpointsStatsRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetApiEndpointsStats",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoints/summary/calls_by_response_code": {
      "post": {
        "summary": "GET Total API Calls for Virtual Host.",
        "description": "GET total API calls for the given Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPICallSummary",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostGetAPICallSummaryRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostGetAPICallSummaryReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPICallSummary",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "API call statistics grouped by response code",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Calls-by-response-code resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "calls-by-response-code"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "calls-by-response-code"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoints/summary/top_active": {
      "post": {
        "summary": "GET Top APIs Endpoints for Virtual Host.",
        "description": "Top APIs by requested activity metric. For example most-active APIs or most-attacked APIs.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetTopAPIEndpoints",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostGetTopAPIEndpointsRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostGetTopAPIEndpointsReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetTopAPIEndpoints",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Top-active resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "top-active"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "top-active"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoints/summary/top_sensitive_data": {
      "post": {
        "summary": "GET Sensitive Data Summary for Virtual Host.",
        "description": "GET sensitive data summary for the given Virtual Host.\nFor each sensitive data type (e.g. SSN, CC, Email) we count the number of APIEPs having the respective\nsensitive data type and return top k (max 10) types with maximum APIEPs.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetTopSensitiveData",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostGetTopSensitiveDataRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostGetTopSensitiveDataReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetTopSensitiveData",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Top-sensitive-data resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "top-sensitive-data"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "top-sensitive-data"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_endpoints/swagger_spec": {
      "get": {
        "summary": "GET Swagger Spec for App Type.",
        "description": "GET the corresponding Swagger spec for the given app type.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetSwaggerSpec",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/apiHttpBody"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the App type for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "domains",
            "description": "List of domains that needs to be sent as part of the request\nOptional filter by domains. If absent, all domains are considered.",
            "in": "query",
            "required": false,
            "x-displayname": "List of Domain.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "x-f5xc-example": "www.example.com"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetSwaggerSpec",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_inventory/api_endpoints/get_schema_updates": {
      "post": {
        "summary": "GET API Endpoints Schema Updates.",
        "description": "GET list of schema paiComparablers, current and updated, for each endpoint in the request\nor all pending changes if empty list is provided.\nNOTE: any API endpoint defined in user swagger files should be ignored.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpointsSchemaUpdates",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostGetAPIEndpointsSchemaUpdatesResp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace of the Virtual Host for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the Virtual Host for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostGetAPIEndpointsSchemaUpdatesReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetAPIEndpointsSchemaUpdates",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Get-schema-update resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "get-schema-update"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "get-schema-update"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/api_inventory/api_endpoints/update_schemas": {
      "post": {
        "summary": "Update API Endpoints Schemas.",
        "description": "Update the payload schema for the specified endpoints or all pending changes if empty list is provided.\nNOTE: only API endpoints returned by a call to `GetAPIEndpointsSchemaStates` can be updated.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.UpdateAPIEndpointsSchemas",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostUpdateAPIEndpointsSchemasResp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace of the Virtual Host for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the Virtual Host for the current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostUpdateAPIEndpointsSchemasReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.UpdateAPIEndpointsSchemas",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Update-schema resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "update-schema"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "update-schema"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/create_ticket": {
      "post": {
        "summary": "Create a ticket for a vulnerability.",
        "description": "Create a ticket for the given vulnerability.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.CreateTicket",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostCreateTicketResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nx-required\nNamespace for the ticket.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "description": "Virtual Host Name\n\nx-required\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostCreateTicketRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.CreateTicket",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Create-ticket resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "create-ticket"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "create-ticket"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/virtual_hosts/{name}/get-dns-info": {
      "get": {
        "summary": "GET DNS Info.",
        "description": "GetDnsInfo is an API to GET DNS information for a given virtual host.",
        "operationId": "ves.io.schema.virtual_host.CustomAPI.GetDnsInfo",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostGetDnsInfoResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace for the virtual host.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          },
          {
            "name": "name",
            "description": "Name\nName of the virtual host.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "value"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.CustomAPI.GetDnsInfo",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "DNS configuration for name resolution",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.CustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/unlink_tickets": {
      "post": {
        "summary": "Unlink Tickets.",
        "description": "Remove the Ticket from vulnerability in XC platform\nExternal ticket systems will continue to have the record.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.UnlinkTickets",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostUnlinkTicketsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nx-required\nNamespace for the ticket.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "description": "Virtual Host Name\n\nx-required\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostUnlinkTicketsRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.UnlinkTickets",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Unlink-ticket resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "unlink-ticket"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "unlink-ticket"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/vulnerabilities": {
      "post": {
        "summary": "GET Vulnerabilities for Virtual Host.",
        "description": "GET vulnerabilities for the given Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.GetVulnerabilities",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostGetVulnerabilitiesRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostGetVulnerabilitiesReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.GetVulnerabilities",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Vulnerabilitie resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "vulnerabilitie"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "vulnerabilitie"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{name}/vulnerability/update_state": {
      "post": {
        "summary": "Update Vulnerabilities for Virtual Host.",
        "description": "Update vulnerabilities for the given Virtual Host.",
        "operationId": "ves.io.schema.virtual_host.ApiepCustomAPI.UpdateVulnerabilitiesState",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/virtual_hostUpdateVulnerabilitiesStateRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace of the virtual host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          },
          {
            "name": "name",
            "description": "Virtual Host Name\nVirtual Host name for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app-vhost"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/virtual_hostUpdateVulnerabilitiesStateReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.virtual_host.ApiepCustomAPI.UpdateVulnerabilitiesState",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Update-state resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "update-state"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "update-state"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "Virtual Host.",
      "x-ves-proto-service": "ves.io.schema.virtual_host.ApiepCustomAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/wafs/metrics/client/rule_hits": {
      "post": {
        "summary": "Client Rule Hits Metrics.",
        "description": "GET number of rule hits per client for a given namespace.\nThe rule hits counter can be aggregated based on one or more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, RULE_ID, RULE_SEVERITY, RULE_TAG.",
        "operationId": "ves.io.schema.waf.WAFMonitoringAPI.ClientRuleHitsMetrics",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/wafRuleHitsCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nnamespace is used to scope the WAF rule hits for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/wafRuleHitsCountRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf.WAFMonitoringAPI.ClientRuleHitsMetrics",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Rule-hit resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "rule-hit"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "rule-hit"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF",
      "x-ves-proto-service": "ves.io.schema.waf.WAFMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/wafs/metrics/client/security_events": {
      "post": {
        "summary": "Client Security Events Metrics.",
        "description": "GET number of security events per client for a given namespace.\nThe security events counter can be aggregated based on one or more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, WAF_MODE.",
        "operationId": "ves.io.schema.waf.WAFMonitoringAPI.ClientSecurityEventsMetrics",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/wafSecurityEventsCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nnamespace is used to scope the WAF security events for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/wafSecurityEventsCountRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf.WAFMonitoringAPI.ClientSecurityEventsMetrics",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Security-event resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "security-event"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "security-event"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF",
      "x-ves-proto-service": "ves.io.schema.waf.WAFMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/wafs/metrics/server/rule_hits": {
      "post": {
        "summary": "Server Rule Hits Metrics.",
        "description": "GET number of rule hits per server for a given namespace.\nThe rule hits counter can be aggregated based on one or more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, RULE_ID, RULE_SEVERITY, RULE_TAG.",
        "operationId": "ves.io.schema.waf.WAFMonitoringAPI.ServerRuleHitsMetrics",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/wafRuleHitsCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\n\nnamespace is used to scope the WAF rule hits for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/wafRuleHitsCountRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf.WAFMonitoringAPI.ServerRuleHitsMetrics",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Rule-hit resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "rule-hit"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "rule-hit"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF",
      "x-ves-proto-service": "ves.io.schema.waf.WAFMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/data/namespaces/{namespace}/wafs/metrics/server/security_events": {
      "post": {
        "summary": "Server Security Events Metrics.",
        "description": "GET number of security events per server for a given namespace.\nThe security events counter can be aggregated based on one or more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, WAF_MODE.",
        "operationId": "ves.io.schema.waf.WAFMonitoringAPI.ServerSecurityEventsMetrics",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/wafSecurityEventsCountResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nnamespace is used to scope the WAF security events for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "bloggin-app-namespace-1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/wafSecurityEventsCountRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf.WAFMonitoringAPI.ServerSecurityEventsMetrics",
        "tags": [
          "data"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Security-event resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "security-event"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "security-event"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF",
      "x-ves-proto-service": "ves.io.schema.waf.WAFMonitoringAPI",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/waf_exclusion_policys": {
      "post": {
        "summary": "Create WAF Exclusion Policy.",
        "description": "Create a WAF exclusion policy.",
        "operationId": "ves.io.schema.waf_exclusion_policy.API.Create",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/waf_exclusion_policyCreateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/waf_exclusion_policyCreateRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_exclusion_policy.API.Create",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Waf-exclusion-policy resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "waf-exclusion-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "waf-exclusion-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF Exclusion Policy.",
      "x-ves-proto-service": "ves.io.schema.waf_exclusion_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{metadata.namespace}/waf_exclusion_policys/{metadata.name}": {
      "put": {
        "summary": "Replace WAF Exclusion Policy.",
        "description": "Replace an existing WAF exclusion policy.",
        "operationId": "ves.io.schema.waf_exclusion_policy.API.Replace",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/waf_exclusion_policyReplaceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "metadata.namespace",
            "description": "Namespace\nThis defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "staging"
          },
          {
            "name": "metadata.name",
            "description": "Name\nThe configuration object to be replaced will be looked up by name.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "example-corp-web"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/waf_exclusion_policyReplaceRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_exclusion_policy.API.Replace",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.metadata.name",
            "path.metadata.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource updated with new values"
            ]
          },
          "side_effects": {
            "modifies": [
              "waf-exclusion-policy"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.metadata.name",
          "path.metadata.namespace"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "modifies": [
            "waf-exclusion-policy"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 800,
          "p95_ms": 2500,
          "p99_ms": 6000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF Exclusion Policy.",
      "x-ves-proto-service": "ves.io.schema.waf_exclusion_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/waf_exclusion_policys": {
      "get": {
        "summary": "List WAF Exclusion Policy.",
        "description": "List the set of waf_exclusion_policy in a namespace.",
        "operationId": "ves.io.schema.waf_exclusion_policy.API.List",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/waf_exclusion_policyListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace to scope the listing of waf_exclusion_policy.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "label_filter",
            "description": "A LabelSelectorType expression that every item in list response will satisfy.",
            "in": "query",
            "required": false,
            "x-displayname": "Label Filter.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)"
          },
          {
            "name": "report_fields",
            "description": "X-example: \"\"\nExtra fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "report_status_fields",
            "description": "X-example: \"\"\nExtra status fields to return along with summary fields.",
            "in": "query",
            "required": false,
            "x-displayname": "Report Status Fields.",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_exclusion_policy.API.List",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF Exclusion Policy.",
      "x-ves-proto-service": "ves.io.schema.waf_exclusion_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/waf_exclusion_policys/{name}": {
      "get": {
        "summary": "GET WAF Exclusion Policy.",
        "description": "Retrieve a WAF exclusion policy.",
        "operationId": "ves.io.schema.waf_exclusion_policy.API.Get",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/waf_exclusion_policyGetResponse"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nThe namespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nThe name of the configuration object to be fetched.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          },
          {
            "name": "response_format",
            "description": "The format in which the configuration object is to be fetched. This could be for example\n - in GetSpec form for the contents of object\n - in CreateRequest form to create a new similar object\n - to ReplaceRequest form to replace changeable values\n\nDefault format of returned resource\nResponse should be in CreateRequest format\nResponse should be in ReplaceRequest format\nResponse should be in StatusObject(s) format\nResponse should be in format of GetSpecType\nResponse should have other objects referring to this object\nResponse should have deleted and disabled objects referred by this object.",
            "in": "query",
            "required": false,
            "x-displayname": "Broken Referred Objects.",
            "schema": {
              "type": "string",
              "enum": [
                "GET_RSP_FORMAT_DEFAULT",
                "GET_RSP_FORMAT_FOR_CREATE",
                "GET_RSP_FORMAT_FOR_REPLACE",
                "GET_RSP_FORMAT_STATUS",
                "GET_RSP_FORMAT_READ",
                "GET_RSP_FORMAT_REFERRING_OBJECTS",
                "GET_RSP_FORMAT_BROKEN_REFERENCES"
              ],
              "default": "GET_RSP_FORMAT_DEFAULT"
            }
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_exclusion_policy.API.Get",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "delete": {
        "summary": "DELETE WAF Exclusion Policy.",
        "description": "DELETE the specified waf_exclusion_policy.",
        "operationId": "ves.io.schema.waf_exclusion_policy.API.Delete",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nNamespace in which the configuration object is present.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "ns1"
          },
          {
            "name": "name",
            "description": "Name\nName of the configuration object.",
            "in": "path",
            "required": true,
            "x-displayname": "Name",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "name"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/waf_exclusion_policyDeleteRequest"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_exclusion_policy.API.Delete",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Configuration policy for resource behavior",
          "required_fields": [
            "path.name",
            "path.namespace"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace",
              "Policy parameters defined"
            ],
            "postconditions": [
              "Resource removed from system",
              "Associated resources may be affected"
            ]
          },
          "side_effects": {
            "deletes": [
              "waf-exclusion-policy",
              "contained_resources"
            ]
          },
          "danger_level": "high",
          "confirmation_required": true,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "high",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.name",
          "path.namespace"
        ],
        "x-f5xc-danger-level": "high",
        "x-f5xc-confirmation-required": true,
        "x-f5xc-side-effects": {
          "deletes": [
            "waf-exclusion-policy",
            "contained_resources"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 500,
          "p95_ms": 1500,
          "p99_ms": 4000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF Exclusion Policy.",
      "x-ves-proto-service": "ves.io.schema.waf_exclusion_policy.API",
      "x-ves-proto-service-type": "AUTO_CRUD_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/virtual_hosts/{vh_name}/active_staged_signatures": {
      "get": {
        "summary": "Active Staged Signatures.",
        "description": "API to GET active Staged Signatures.",
        "operationId": "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi.GetActiveStagedSignatures",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/waf_signatures_changelogReleasedSignaturesRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nFetch WAF signatures changelog for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "vh_name",
            "description": "Vh_name\nVirtual Host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi.GetActiveStagedSignatures",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.namespace",
            "path.vh_name"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace",
          "path.vh_name"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF Signatures Changelog.",
      "x-ves-proto-service": "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/config/namespaces/{namespace}/virtual_hosts/{vh_name}/released_signatures": {
      "get": {
        "summary": "Released Signatures.",
        "description": "API to GET Released Signatures.",
        "operationId": "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi.GetReleasedSignatures",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/waf_signatures_changelogReleasedSignaturesRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nFetch WAF signatures changelog for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "vh_name",
            "description": "Vh_name\nVirtual Host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi.GetReleasedSignatures",
        "tags": [
          "config"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource retrieval operation",
          "required_fields": [
            "path.namespace",
            "path.vh_name"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": []
          },
          "side_effects": {},
          "danger_level": "low",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "moderate",
            "resource_usage": "moderate"
          }
        },
        "x-f5xc-required-fields": [
          "path.namespace",
          "path.vh_name"
        ],
        "x-f5xc-danger-level": "low",
        "x-f5xc-discovered-response-time": {
          "p50_ms": 200,
          "p95_ms": 800,
          "p99_ms": 2000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF Signatures Changelog.",
      "x-ves-proto-service": "ves.io.schema.waf_signatures_changelog.WafSignatureChangelogCustomApi",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    },
    "/api/ml/data/namespaces/{namespace}/virtual_hosts/{vh_name}/staged_signatures": {
      "post": {
        "summary": "Staged Signatures.",
        "description": "API to GET Staged Signatures.",
        "operationId": "ves.io.schema.waf_signatures_changelog.SignatureCustomApi.GetStagedSignatures",
        "responses": {
          "200": {
            "description": "A successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/waf_signatures_changelogStagedSignaturesRsp"
                }
              }
            }
          },
          "401": {
            "description": "Returned when operation is not authorized.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "403": {
            "description": "Returned when there is no permission to access resource.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "404": {
            "description": "Returned when resource is not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "409": {
            "description": "Returned when operation on resource is conflicting with current value.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "429": {
            "description": "Returned when operation has been rejected as it is happening too frequently.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "500": {
            "description": "Returned when server encountered an error in processing API.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "503": {
            "description": "Returned when service is unavailable temporarily.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          },
          "504": {
            "description": "Returned when server timed out processing request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "string"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "namespace",
            "description": "Namespace\nFetch staged signatures for the given namespace.",
            "in": "path",
            "required": true,
            "x-displayname": "Namespace",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "shared"
          },
          {
            "name": "vh_name",
            "description": "Vh_name\nVirtual Host for current request.",
            "in": "path",
            "required": true,
            "x-displayname": "Virtual Host Name.",
            "schema": {
              "type": "string"
            },
            "x-f5xc-example": "blogging-app"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/waf_signatures_changelogStagedSignaturesReq"
              }
            }
          },
          "required": true
        },
        "externalDocs": {
          "description": "Examples of this operation.",
          "url": "https://f5-sales-demo.github.io/api-specs-enriched/api-reference/virtual/"
        },
        "x-ves-proto-rpc": "ves.io.schema.waf_signatures_changelog.SignatureCustomApi.GetStagedSignatures",
        "tags": [
          "ml"
        ],
        "x-f5xc-operation-metadata": {
          "purpose": "Resource creation operation",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "path.namespace",
            "path.vh_name"
          ],
          "optional_fields": [],
          "field_docs": {},
          "conditions": {
            "prerequisites": [
              "Active namespace"
            ],
            "postconditions": [
              "Staged-signature resource created",
              "Resource assigned unique identifier"
            ]
          },
          "side_effects": {
            "creates": [
              "staged-signature"
            ]
          },
          "danger_level": "medium",
          "confirmation_required": false,
          "common_errors": [
            {
              "code": 401,
              "message": "Authentication required",
              "solution": "Provide valid API credentials"
            },
            {
              "code": 403,
              "message": "Permission denied",
              "solution": "Check access permissions for this operation"
            },
            {
              "code": 404,
              "message": "Resource not found",
              "solution": "Verify resource name, namespace, and path"
            },
            {
              "code": 409,
              "message": "Resource already exists",
              "solution": "Use different name or update existing resource"
            },
            {
              "code": 429,
              "message": "Rate limit exceeded",
              "solution": "Wait before retrying the operation"
            },
            {
              "code": 500,
              "message": "Server error",
              "solution": "Retry operation or contact support"
            }
          ],
          "performance_impact": {
            "latency": "low",
            "resource_usage": "low"
          }
        },
        "x-f5xc-required-fields": [
          "metadata.name",
          "metadata.namespace",
          "path.namespace",
          "path.vh_name"
        ],
        "x-f5xc-danger-level": "medium",
        "x-f5xc-side-effects": {
          "creates": [
            "staged-signature"
          ]
        },
        "x-f5xc-discovered-response-time": {
          "p50_ms": 1000,
          "p95_ms": 3000,
          "p99_ms": 8000,
          "sample_count": 0,
          "source": "estimate"
        }
      },
      "x-displayname": "WAF Signatures Changelog.",
      "x-ves-proto-service": "ves.io.schema.waf_signatures_changelog.SignatureCustomApi",
      "x-ves-proto-service-type": "CUSTOM_PUBLIC"
    }
  },
  "components": {
    "securitySchemes": {
      "ApiToken": {
        "type": "apiKey",
        "name": "Authorization",
        "in": "header",
        "description": "API Token authentication. Format: 'APIToken <your-token>'"
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization",
        "description": "F5 XC API Token (format: APIToken <token>)"
      }
    },
    "schemas": {
      "app_firewallAIEnhancementsConfig": {
        "type": "object",
        "description": "Actions complimented by the additional intelligence of the F5 AI Powered Risk-based analysis.",
        "title": "AI Enhancements Config",
        "x-displayname": "AI Enhancements Config.",
        "x-ves-oneof-field-risk_score_action_choice": "[\"mitigate_high_medium_risk_action\",\"mitigate_high_risk_action\"]",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AIEnhancementsConfig",
        "properties": {
          "mitigate_high_medium_risk_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mitigate_high_risk_action"
            ]
          },
          "mitigate_high_risk_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mitigate_high_medium_risk_action"
            ]
          }
        },
        "x-f5xc-description-short": "Actions complimented by the additional intelligence of the F5 AI Powered Risk-based analysis.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAIEnhancementsConfig",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAllowedResponseCodes": {
        "type": "object",
        "description": "List of HTTP response status codes that are allowed.",
        "title": "Allowed Response Codes",
        "x-displayname": "Allowed Response Codes.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AllowedResponseCodes",
        "properties": {
          "response_code": {
            "type": "array",
            "description": "List of HTTP response status codes that are allowed.",
            "title": "response_code",
            "minItems": 1,
            "maxItems": 48,
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "x-displayname": "Response Code.",
            "x-ves-example": "[200, 201, 204, 300, 302, 400, 403, 404, 500, 501, 503]",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.uint32.gte": "100",
              "ves.io.schema.rules.repeated.items.uint32.lte": "999",
              "ves.io.schema.rules.repeated.max_items": "48",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[200, 201, 204, 300, 302, 400, 403, 404, 500, 501, 503]",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.uint32.gte": "100",
              "ves.io.schema.rules.repeated.items.uint32.lte": "999",
              "ves.io.schema.rules.repeated.max_items": "48",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of HTTP response status codes that are allowed.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 48,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of HTTP response status codes that are allowed.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAllowedResponseCodes",
          "required_fields": [
            "response_code"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"response_code\": [\n    0\n  ]\n}",
          "example_yaml": "response_code:\n- 0"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAnonymizationConfiguration": {
        "type": "object",
        "description": "Configure anonymization for HTTP headers, parameters or cookies which may contain sensitive data.",
        "title": "AnonymizationConfiguration",
        "x-displayname": "Anonymization Configuration.",
        "x-ves-oneof-field-anonymization_choice": "[\"cookie\",\"http_header\",\"query_parameter\"]",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AnonymizationConfiguration",
        "properties": {
          "cookie": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAnonymizeHttpCookie"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_header",
              "query_parameter"
            ]
          },
          "http_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAnonymizeHttpHeader"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie",
              "query_parameter"
            ]
          },
          "query_parameter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAnonymizeHttpQueryParameter"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for query parameter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie",
              "http_header"
            ]
          }
        },
        "x-f5xc-description-short": "Configure anonymization for HTTP headers, parameters or cookies which may contain sensitive data.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAnonymizationConfiguration",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAnonymizationSetting": {
        "type": "object",
        "description": "Anonymization settings which is a list of HTTP headers, parameters and cookies.",
        "title": "AnonymizationSetting",
        "x-displayname": "Anonymization Configuration.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AnonymizationSetting",
        "properties": {
          "anonymization_config": {
            "type": "array",
            "description": "List of HTTP headers, cookies and query parameters whose values will be masked.",
            "title": "AnonymizationConfiguration",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/app_firewallAnonymizationConfiguration"
            },
            "x-displayname": "Configuration.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of HTTP headers, cookies and query parameters whose values will be masked.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Anonymization settings which is a list of HTTP headers, parameters and cookies.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAnonymizationSetting",
          "required_fields": [
            "anonymization_config"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"anonymization_config\": [\n    {}\n  ]\n}",
          "example_yaml": "anonymization_config:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAnonymizeHttpCookie": {
        "type": "object",
        "description": "Configure anonymization for HTTP Cookies.",
        "title": "AnonymizeHttpCookie",
        "x-displayname": "Anonymize HTTP Cookie.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AnonymizeHttpCookie",
        "properties": {
          "cookie_name": {
            "type": "string",
            "description": "Masks the cookie value. The setting does not mask the cookie name.\nWildcard matching can be used by prefixing or suffixing the cookie name\nwith a wildcard asterisk (*), or by using only an asterisk to match any cookie name.",
            "title": "cookie_name",
            "maxLength": 256,
            "x-displayname": "Cookie Name.",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Masks the cookie value. The setting does not mask the cookie name.",
            "x-f5xc-description-medium": "Masks the cookie value. The setting does not mask the cookie name. Wildcard matching can be used by prefixing or suffixing the cookie name with a wildcard asterisk (*), or by using only an asterisk to match any cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Configure anonymization for HTTP Cookies.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAnonymizeHttpCookie",
          "required_fields": [
            "cookie_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"cookie_name\": \"value\"\n}",
          "example_yaml": "cookie_name: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAnonymizeHttpHeader": {
        "type": "object",
        "description": "Configure anonymization for HTTP Headers.",
        "title": "AnonymizeHttpHeader",
        "x-displayname": "Anonymize HTTP Header.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AnonymizeHttpHeader",
        "properties": {
          "header_name": {
            "type": "string",
            "description": "Masks the HTTP header value. The setting does not mask the HTTP header name.\nWildcard matching can be used by prefixing or suffixing the HTTP header name\nwith a wildcard asterisk (*), or by using only an asterisk to match any HTTP header name.",
            "title": "header_name",
            "x-displayname": "Header Name.",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true"
            },
            "x-f5xc-description-short": "Masks the HTTP header value. The setting does not mask the HTTP header name.",
            "x-f5xc-description-medium": "Masks the HTTP header value. The setting does not mask the HTTP header name. Wildcard matching can be used by prefixing or suffixing the HTTP header name with a wildcard asterisk (*), or by using only an asterisk to match any HTTP header name.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Configure anonymization for HTTP Headers.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAnonymizeHttpHeader",
          "required_fields": [
            "header_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"header_name\": \"value\"\n}",
          "example_yaml": "header_name: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAnonymizeHttpQueryParameter": {
        "type": "object",
        "description": "Configure anonymization for HTTP Parameters.",
        "title": "AnonymizeHttpQueryParameter",
        "x-displayname": "Anonymize HTTP Query Parameter.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AnonymizeHttpQueryParameter",
        "properties": {
          "query_param_name": {
            "type": "string",
            "description": "Masks the query parameter value. The setting does not mask the query parameter name.\nWildcard matching can be used by prefixing or suffixing the query parameter name\nwith a wildcard asterisk (*), or by using only an asterisk to match any query parameter name.",
            "title": "query_param_name",
            "maxLength": 256,
            "x-displayname": "Query Parameter Name.",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Masks the query parameter value. The setting does not mask the query parameter name.",
            "x-f5xc-description-medium": "Masks the query parameter value. The setting does not mask the query parameter name. Wildcard matching can be used by prefixing or suffixing the query parameter name with a wildcard asterisk (*), or by using only an asterisk to match any query parameter name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Configure anonymization for HTTP Parameters.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAnonymizeHttpQueryParameter",
          "required_fields": [
            "query_param_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"query_param_name\": \"value\"\n}",
          "example_yaml": "query_param_name: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAppFirewallViolationType": {
        "type": "string",
        "description": "List of all supported Violation Types\n\nVIOL_NONE\nVIOL_FILETYPE\nVIOL_METHOD\nVIOL_MANDATORY_HEADER\nVIOL_HTTP_RESPONSE_STATUS\nVIOL_REQUEST_MAX_LENGTH\nVIOL_FILE_UPLOAD\nVIOL_FILE_UPLOAD_IN_BODY\nVIOL_XML_MALFORMED\nVIOL_JSON_MALFORMED\nVIOL_ASM_COOKIE_MODIFIED\nVIOL_HTTP_PROTOCOL_MULTIPLE_HOST_HEADERS\nVIOL_HTTP_PROTOCOL_BAD_HOST_HEADER_VALUE\nVIOL_HTTP_PROTOCOL_UNPARSABLE_REQUEST_CONTENT\nVIOL_HTTP_PROTOCOL_NULL_IN_REQUEST\nVIOL_HTTP_PROTOCOL_BAD_HTTP_VERSION\nVIOL_HTTP_PROTOCOL_CRLF_CHARACTERS_BEFORE_REQUEST_START\nVIOL_HTTP_PROTOCOL_NO_HOST_HEADER_IN_HTTP_1_1_REQUEST\nVIOL_HTTP_PROTOCOL_BAD_MULTIPART_PARAMETERS_PARSING\nVIOL_HTTP_PROTOCOL_SEVERAL_CONTENT_LENGTH_HEADERS\nVIOL_HTTP_PROTOCOL_CONTENT_LENGTH_SHOULD_BE_A_POSITIVE_NUMBER\nVIOL_EVASION_DIRECTORY_TRAVERSALS\nVIOL_MALFORMED_REQUEST\nVIOL_EVASION_MULTIPLE_DECODING\nVIOL_DATA_GUARD\nVIOL_EVASION_APACHE_WHITESPACE\nVIOL_COOKIE_MODIFIED\nVIOL_EVASION_IIS_UNICODE_CODEPOINTS\nVIOL_EVASION_IIS_BACKSLASHES\nVIOL_EVASION_PERCENT_U_DECODING\nVIOL_EVASION_BARE_BYTE_DECODING\nVIOL_EVASION_BAD_UNESCAPE\nVIOL_HTTP_PROTOCOL_BAD_MULTIPART_FORMDATA_REQUEST_PARSING\nVIOL_HTTP_PROTOCOL_BODY_IN_GET_OR_HEAD_REQUEST\nVIOL_HTTP_PROTOCOL_HIGH_ASCII_CHARACTERS_IN_HEADERS\nVIOL_ENCODING\nVIOL_COOKIE_MALFORMED\nVIOL_GRAPHQL_FORMAT\nVIOL_GRAPHQL_MALFORMED\nVIOL_GRAPHQL_INTROSPECTION_QUERY.",
        "title": "App Firewall Violation Type",
        "enum": [
          "VIOL_NONE",
          "VIOL_FILETYPE",
          "VIOL_METHOD",
          "VIOL_MANDATORY_HEADER",
          "VIOL_HTTP_RESPONSE_STATUS",
          "VIOL_REQUEST_MAX_LENGTH",
          "VIOL_FILE_UPLOAD",
          "VIOL_FILE_UPLOAD_IN_BODY",
          "VIOL_XML_MALFORMED",
          "VIOL_JSON_MALFORMED",
          "VIOL_ASM_COOKIE_MODIFIED",
          "VIOL_HTTP_PROTOCOL_MULTIPLE_HOST_HEADERS",
          "VIOL_HTTP_PROTOCOL_BAD_HOST_HEADER_VALUE",
          "VIOL_HTTP_PROTOCOL_UNPARSABLE_REQUEST_CONTENT",
          "VIOL_HTTP_PROTOCOL_NULL_IN_REQUEST",
          "VIOL_HTTP_PROTOCOL_BAD_HTTP_VERSION",
          "VIOL_HTTP_PROTOCOL_CRLF_CHARACTERS_BEFORE_REQUEST_START",
          "VIOL_HTTP_PROTOCOL_NO_HOST_HEADER_IN_HTTP_1_1_REQUEST",
          "VIOL_HTTP_PROTOCOL_BAD_MULTIPART_PARAMETERS_PARSING",
          "VIOL_HTTP_PROTOCOL_SEVERAL_CONTENT_LENGTH_HEADERS",
          "VIOL_HTTP_PROTOCOL_CONTENT_LENGTH_SHOULD_BE_A_POSITIVE_NUMBER",
          "VIOL_EVASION_DIRECTORY_TRAVERSALS",
          "VIOL_MALFORMED_REQUEST",
          "VIOL_EVASION_MULTIPLE_DECODING",
          "VIOL_DATA_GUARD",
          "VIOL_EVASION_APACHE_WHITESPACE",
          "VIOL_COOKIE_MODIFIED",
          "VIOL_EVASION_IIS_UNICODE_CODEPOINTS",
          "VIOL_EVASION_IIS_BACKSLASHES",
          "VIOL_EVASION_PERCENT_U_DECODING",
          "VIOL_EVASION_BARE_BYTE_DECODING",
          "VIOL_EVASION_BAD_UNESCAPE",
          "VIOL_HTTP_PROTOCOL_BAD_MULTIPART_FORMDATA_REQUEST_PARSING",
          "VIOL_HTTP_PROTOCOL_BODY_IN_GET_OR_HEAD_REQUEST",
          "VIOL_HTTP_PROTOCOL_HIGH_ASCII_CHARACTERS_IN_HEADERS",
          "VIOL_ENCODING",
          "VIOL_COOKIE_MALFORMED",
          "VIOL_GRAPHQL_FORMAT",
          "VIOL_GRAPHQL_MALFORMED",
          "VIOL_GRAPHQL_INTROSPECTION_QUERY"
        ],
        "default": "VIOL_NONE",
        "x-displayname": "App Firewall Violation Type.",
        "x-ves-proto-enum": "ves.io.schema.app_firewall.AppFirewallViolationType",
        "x-f5xc-description-short": "List of all supported Violation Types VIOL_NONE VIOL_FILETYPE VIOL_METHOD VIOL_MANDATORY_HEADER VIOL_HTTP_RESPONSE_STATUS VIOL_REQUEST_MAX_LENGTH...",
        "x-f5xc-description-medium": "List of all supported Violation Types VIOL_NONE VIOL_FILETYPE VIOL_METHOD VIOL_MANDATORY_HEADER VIOL_HTTP_RESPONSE_STATUS VIOL_REQUEST_MAX_LENGTH VIOL_FILE_UPLOAD VIOL_FILE_UPLOAD_IN_BODY VIOL_XML_MALFORMED VIOL_JSON_MALFORMED VIOL_ASM_COOKIE_MODIFIED VIOL_HTTP_PROTOCOL_MULTIPLE_HOST_HEADERS...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAppFirewallViolationType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"VIOL_NONE\"",
          "example_yaml": "VIOL_NONE\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAttackType": {
        "type": "string",
        "description": "List of all Attack Types\n\nATTACK_TYPE_NONE\nATTACK_TYPE_NON_BROWSER_CLIENT\nATTACK_TYPE_OTHER_APPLICATION_ATTACKS\nATTACK_TYPE_TROJAN_BACKDOOR_SPYWARE\nATTACK_TYPE_DETECTION_EVASION\nATTACK_TYPE_VULNERABILITY_SCAN\nATTACK_TYPE_ABUSE_OF_FUNCTIONALITY\nATTACK_TYPE_AUTHENTICATION_AUTHORIZATION_ATTACKS\nATTACK_TYPE_BUFFER_OVERFLOW\nATTACK_TYPE_PREDICTABLE_RESOURCE_LOCATION\nATTACK_TYPE_INFORMATION_LEAKAGE\nATTACK_TYPE_DIRECTORY_INDEXING\nATTACK_TYPE_PATH_TRAVERSAL\nATTACK_TYPE_XPATH_INJECTION\nATTACK_TYPE_LDAP_INJECTION\nATTACK_TYPE_SERVER_SIDE_CODE_INJECTION\nATTACK_TYPE_COMMAND_EXECUTION\nATTACK_TYPE_SQL_INJECTION\nATTACK_TYPE_CROSS_SITE_SCRIPTING\nATTACK_TYPE_DENIAL_OF_SERVICE\nATTACK_TYPE_HTTP_PARSER_ATTACK\nATTACK_TYPE_SESSION_HIJACKING\nATTACK_TYPE_HTTP_RESPONSE_SPLITTING\nATTACK_TYPE_FORCEFUL_BROWSING\nATTACK_TYPE_REMOTE_FILE_INCLUDE\nATTACK_TYPE_MALICIOUS_FILE_UPLOAD\nATTACK_TYPE_GRAPHQL_PARSER_ATTACK.",
        "title": "AttackType",
        "enum": [
          "ATTACK_TYPE_NONE",
          "ATTACK_TYPE_NON_BROWSER_CLIENT",
          "ATTACK_TYPE_OTHER_APPLICATION_ATTACKS",
          "ATTACK_TYPE_TROJAN_BACKDOOR_SPYWARE",
          "ATTACK_TYPE_DETECTION_EVASION",
          "ATTACK_TYPE_VULNERABILITY_SCAN",
          "ATTACK_TYPE_ABUSE_OF_FUNCTIONALITY",
          "ATTACK_TYPE_AUTHENTICATION_AUTHORIZATION_ATTACKS",
          "ATTACK_TYPE_BUFFER_OVERFLOW",
          "ATTACK_TYPE_PREDICTABLE_RESOURCE_LOCATION",
          "ATTACK_TYPE_INFORMATION_LEAKAGE",
          "ATTACK_TYPE_DIRECTORY_INDEXING",
          "ATTACK_TYPE_PATH_TRAVERSAL",
          "ATTACK_TYPE_XPATH_INJECTION",
          "ATTACK_TYPE_LDAP_INJECTION",
          "ATTACK_TYPE_SERVER_SIDE_CODE_INJECTION",
          "ATTACK_TYPE_COMMAND_EXECUTION",
          "ATTACK_TYPE_SQL_INJECTION",
          "ATTACK_TYPE_CROSS_SITE_SCRIPTING",
          "ATTACK_TYPE_DENIAL_OF_SERVICE",
          "ATTACK_TYPE_HTTP_PARSER_ATTACK",
          "ATTACK_TYPE_SESSION_HIJACKING",
          "ATTACK_TYPE_HTTP_RESPONSE_SPLITTING",
          "ATTACK_TYPE_FORCEFUL_BROWSING",
          "ATTACK_TYPE_REMOTE_FILE_INCLUDE",
          "ATTACK_TYPE_MALICIOUS_FILE_UPLOAD",
          "ATTACK_TYPE_GRAPHQL_PARSER_ATTACK"
        ],
        "default": "ATTACK_TYPE_NONE",
        "x-displayname": "Attack Types.",
        "x-ves-proto-enum": "ves.io.schema.app_firewall.AttackType",
        "x-f5xc-description-short": "List of all Attack Types ATTACK_TYPE_NONE ATTACK_TYPE_NON_BROWSER_CLIENT ATTACK_TYPE_OTHER_APPLICATION_ATTACKS ATTACK_TYPE_TROJAN_BACKDOOR_SPYWARE...",
        "x-f5xc-description-medium": "List of all Attack Types ATTACK_TYPE_NONE ATTACK_TYPE_NON_BROWSER_CLIENT ATTACK_TYPE_OTHER_APPLICATION_ATTACKS ATTACK_TYPE_TROJAN_BACKDOOR_SPYWARE ATTACK_TYPE_DETECTION_EVASION ATTACK_TYPE_VULNERABILITY_SCAN ATTACK_TYPE_ABUSE_OF_FUNCTIONALITY ATTACK_TYPE_AUTHENTICATION_AUTHORIZATION_ATTACKS...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAttackType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"ATTACK_TYPE_NONE\"",
          "example_yaml": "ATTACK_TYPE_NONE\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallAttackTypeSettings": {
        "type": "object",
        "description": "Specifies attack-type settings to be used by WAF.",
        "title": "Attack Type Settings",
        "x-displayname": "Attack Type Settings.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.AttackTypeSettings",
        "properties": {
          "disabled_attack_types": {
            "type": "array",
            "description": "List of Attack Types that will be ignored and not trigger a detection.",
            "title": "Disabled Attack Types",
            "maxItems": 22,
            "items": {
              "$ref": "#/components/schemas/app_firewallAttackType"
            },
            "x-displayname": "Disabled Attack Types.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "22",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "22",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Attack Types that will be ignored and not trigger a detection.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 22,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies attack-type settings to be used by WAF.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallAttackTypeSettings",
          "required_fields": [
            "disabled_attack_types"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"disabled_attack_types\": [\n    \"ATTACK_TYPE_NONE\"\n  ]\n}",
          "example_yaml": "disabled_attack_types:\n- ATTACK_TYPE_NONE"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallBotAction": {
        "type": "string",
        "description": "Action to be performed on the request\n\nLog and block\nLog only\nDisable detection.",
        "title": "Bot Action",
        "enum": [
          "BLOCK",
          "REPORT",
          "IGNORE"
        ],
        "default": "BLOCK",
        "x-displayname": "Bot Action.",
        "x-ves-proto-enum": "ves.io.schema.app_firewall.BotAction",
        "x-f5xc-description-short": "Action to be performed on the request Log and block Log only Disable detection.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallBotAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"BLOCK\"",
          "example_yaml": "BLOCK\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallBotProtectionSetting": {
        "type": "object",
        "description": "Configuration of WAF Bot Protection.",
        "title": "BotProtectionSetting",
        "x-displayname": "Bot Protection.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.BotProtectionSetting",
        "properties": {
          "good_bot_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallBotAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "malicious_bot_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallBotAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "suspicious_bot_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallBotAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallBotProtectionSetting",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of app_firewall",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Web Application Firewall (WAF) policy for protecting HTTP applications",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "mutually_exclusive_groups": [
            {
              "name": "enforcement_mode_choice",
              "fields": [
                "spec.monitoring",
                "spec.blocking"
              ],
              "reason": "Server default is monitoring (no blocking). Use blocking: {} for production WAF protection."
            },
            {
              "name": "detection_setting_choice",
              "fields": [
                "spec.default_detection_settings",
                "spec.detection_settings"
              ],
              "reason": "Server applies default_detection_settings: {} when omitted"
            },
            {
              "name": "allowed_response_codes_choice",
              "fields": [
                "spec.allow_all_response_codes",
                "spec.allowed_response_codes"
              ],
              "reason": "Server applies allow_all_response_codes: {} when omitted"
            },
            {
              "name": "bot_protection_choice",
              "fields": [
                "spec.default_bot_setting",
                "spec.bot_protection_setting"
              ],
              "reason": "Server applies default_bot_setting: {} when omitted"
            },
            {
              "name": "anonymization_setting",
              "fields": [
                "spec.default_anonymization",
                "spec.custom_anonymization",
                "spec.disable_anonymization"
              ],
              "reason": "Server applies default_anonymization: {} when omitted"
            },
            {
              "name": "blocking_page_choice",
              "fields": [
                "spec.use_default_blocking_page",
                "spec.blocking_page"
              ],
              "reason": "Server applies use_default_blocking_page: {} when omitted"
            },
            {
              "name": "enhance_with_ai_choice",
              "fields": [
                "spec.disable_ai_enhancements",
                "spec.enable_ai_enhancements"
              ],
              "reason": "Server applies disable_ai_enhancements: {} when omitted"
            }
          ],
          "example_yaml": "apiVersion: v1\nkind: app_firewall\nmetadata:\n  name: default-waf\n  namespace: default\nspec:\n  blocking: {}\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"default-waf\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"blocking\": {}\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.app_firewall.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallCreateSpecType": {
        "type": "object",
        "description": "Create Application Firewall.",
        "title": "Create Application Firewall",
        "x-displayname": "Create Application Firewall.",
        "x-ves-oneof-field-allowed_response_codes_choice": "[\"allow_all_response_codes\",\"allowed_response_codes\"]",
        "x-ves-oneof-field-anonymization_setting": "[\"custom_anonymization\",\"default_anonymization\",\"disable_anonymization\"]",
        "x-ves-oneof-field-blocking_page_choice": "[\"blocking_page\",\"use_default_blocking_page\"]",
        "x-ves-oneof-field-bot_protection_choice": "[\"bot_protection_setting\",\"default_bot_setting\"]",
        "x-ves-oneof-field-detection_setting_choice": "[\"default_detection_settings\",\"detection_settings\"]",
        "x-ves-oneof-field-enforcement_mode_choice": "[\"blocking\",\"monitoring\"]",
        "x-ves-oneof-field-enhance_with_ai_choice": "[\"disable_ai_enhancements\",\"enable_ai_enhancements\"]",
        "x-ves-proto-message": "ves.io.schema.app_firewall.CreateSpecType",
        "properties": {
          "allow_all_response_codes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow all response codes.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "allowed_response_codes"
            ]
          },
          "allowed_response_codes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAllowedResponseCodes"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed response codes.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_response_codes"
            ]
          },
          "blocking": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "monitoring"
            ]
          },
          "blocking_page": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallCustomBlockingPage"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_default_blocking_page"
            ]
          },
          "bot_protection_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallBotProtectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot protection setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_bot_setting"
            ]
          },
          "custom_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAnonymizationSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_anonymization",
              "disable_anonymization"
            ]
          },
          "default_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "custom_anonymization",
              "disable_anonymization"
            ]
          },
          "default_bot_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default bot setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "bot_protection_setting"
            ]
          },
          "default_detection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default detection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "detection_settings"
            ]
          },
          "detection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallDetectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for detection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_detection_settings"
            ]
          },
          "disable_ai_enhancements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable ai enhancements.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_ai_enhancements"
            ]
          },
          "disable_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_anonymization",
              "default_anonymization"
            ]
          },
          "enable_ai_enhancements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAIEnhancementsConfig"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable ai enhancements.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_ai_enhancements"
            ]
          },
          "monitoring": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "blocking"
            ]
          },
          "use_default_blocking_page": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "blocking_page"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "enforcement_mode_choice": "blocking",
          "detection_setting_choice": "detection_settings",
          "allowed_response_codes_choice": "allow_all_response_codes",
          "anonymization_setting": "default_anonymization",
          "blocking_page_choice": "use_default_blocking_page",
          "bot_protection_choice": "default_bot_setting",
          "enhance_with_ai_choice": "disable_ai_enhancements"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallCustomBlockingPage": {
        "type": "object",
        "description": "Custom blocking response page body.",
        "title": "Custom Blocking Page",
        "x-displayname": "Custom Blocking Response Page.",
        "x-ves-displayorder": "2,1",
        "x-ves-proto-message": "ves.io.schema.app_firewall.CustomBlockingPage",
        "properties": {
          "blocking_page": {
            "type": "string",
            "description": "Define the content of the response page (e.g., an HTML document or a JSON object), use the\n{{request_id}} placeholder to provide users with a unique\nidentifier to be able to trace the blocked request in the logs.\nThe maximum allowed size of response body is 4096 bytes after base64 encoding,\nwhich would be about 3070 bytes in plain text.",
            "title": "blocking_page",
            "maxLength": 4096,
            "x-displayname": "Blocking Response Page Body.",
            "x-ves-example": "<HTML><HEAD><title>Request Rejected</title></HEAD><body>The requested URL was rejected. Please consult with your administrator.<br/><br/>Your support ID is: {{request_id}}<br/><br/><a href=\\\"javascript:history.back()\\\">[Go Back]</a></body></HTML>",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "4096",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-example": "\"<html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please consult with your administrator.<br/><br/>Your support ID is{{request_id}}<br/><br/><a href=\\\"javascript:history.back()\\\">[Go Back]</a></body></html>\"",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "4096",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Define the content of the response page (e.g., an HTML document or a JSON object), use the {{request_id}} placeholder to provide users with a...",
            "x-f5xc-description-medium": "Define the content of the response page (e.g., an HTML document or a JSON object), use the {{request_id}} placeholder to provide users with a unique identifier to be able to trace the blocked request in the logs. The maximum allowed size of response body is 4096 bytes after base64 encoding...",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 4096,
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "content",
                "note": "Must be a valid URI (uri_ref). API rejects inline HTML despite the description example.",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpStatusCode"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for response code.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallCustomBlockingPage",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a app_firewall",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallDetectionSetting": {
        "type": "object",
        "description": "Specifies detection settings to be used by WAF.",
        "title": "Detection Settings",
        "x-displayname": "Detection Settings.",
        "x-ves-displayorder": "1,2,12,5,8,16",
        "x-ves-oneof-field-bot_protection_choice": "[\"bot_protection_setting\",\"default_bot_setting\"]",
        "x-ves-oneof-field-false_positive_suppression": "[\"disable_suppression\",\"enable_suppression\"]",
        "x-ves-oneof-field-signatures_staging_settings": "[\"disable_staging\",\"stage_new_and_updated_signatures\",\"stage_new_signatures\"]",
        "x-ves-oneof-field-threat_campaign_choice": "[\"disable_threat_campaigns\",\"enable_threat_campaigns\"]",
        "x-ves-oneof-field-violation_detection_setting": "[\"default_violation_settings\",\"violation_settings\"]",
        "x-ves-proto-message": "ves.io.schema.app_firewall.DetectionSetting",
        "properties": {
          "bot_protection_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallBotProtectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot protection setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_bot_setting"
            ]
          },
          "default_bot_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default bot setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_protection_setting"
            ]
          },
          "default_violation_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default violation settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "violation_settings"
            ]
          },
          "disable_staging": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "stage_new_and_updated_signatures",
              "stage_new_signatures"
            ]
          },
          "disable_suppression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable suppression.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_suppression"
            ]
          },
          "disable_threat_campaigns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_threat_campaigns"
            ]
          },
          "enable_suppression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable suppression.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_suppression"
            ]
          },
          "enable_threat_campaigns": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_threat_campaigns"
            ]
          },
          "signature_selection_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallSignatureSelectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for signature selection setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "stage_new_and_updated_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallSignaturesStagingSettings"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_staging",
              "stage_new_signatures"
            ]
          },
          "stage_new_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallSignaturesStagingSettings"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_staging",
              "stage_new_and_updated_signatures"
            ]
          },
          "violation_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallViolationSettings"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for violation settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_violation_settings"
            ]
          },
          "violations_view": {
            "type": "array",
            "description": "List of violation checks that are performed on HTTP request to ensure the requests are properly formatted, detection of evasion techniques and other violations.",
            "title": "Violations configuration settings for view only",
            "items": {
              "$ref": "#/components/schemas/app_firewallViolationConfigView"
            },
            "x-displayname": "Violations.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "List of violation checks that are performed on HTTP request to ensure the requests are properly formatted, detection of evasion techniques and...",
            "x-f5xc-description-medium": "List of violation checks that are performed on HTTP request to ensure the requests are properly formatted, detection of evasion techniques and other violations.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies detection settings to be used by WAF.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallDetectionSetting",
          "required_fields": [
            "violations_view"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"violations_view\": [\n    {}\n  ]\n}",
          "example_yaml": "violations_view:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read app_firewall",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/app_firewallStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallGetSpecType": {
        "type": "object",
        "description": "GET Application Firewall.",
        "title": "Get Application Firewall",
        "x-displayname": "GET Application Firewall.",
        "x-ves-oneof-field-allowed_response_codes_choice": "[\"allow_all_response_codes\",\"allowed_response_codes\"]",
        "x-ves-oneof-field-anonymization_setting": "[\"custom_anonymization\",\"default_anonymization\",\"disable_anonymization\"]",
        "x-ves-oneof-field-blocking_page_choice": "[\"blocking_page\",\"use_default_blocking_page\"]",
        "x-ves-oneof-field-bot_protection_choice": "[\"bot_protection_setting\",\"default_bot_setting\"]",
        "x-ves-oneof-field-detection_setting_choice": "[\"default_detection_settings\",\"detection_settings\"]",
        "x-ves-oneof-field-enforcement_mode_choice": "[\"blocking\",\"monitoring\"]",
        "x-ves-oneof-field-enhance_with_ai_choice": "[\"disable_ai_enhancements\",\"enable_ai_enhancements\"]",
        "x-ves-proto-message": "ves.io.schema.app_firewall.GetSpecType",
        "properties": {
          "allow_all_response_codes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow all response codes.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "allowed_response_codes"
            ]
          },
          "allowed_response_codes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAllowedResponseCodes"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed response codes.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_response_codes"
            ]
          },
          "blocking": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "monitoring"
            ]
          },
          "blocking_page": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallCustomBlockingPage"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_default_blocking_page"
            ]
          },
          "bot_protection_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallBotProtectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot protection setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_bot_setting"
            ]
          },
          "custom_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAnonymizationSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_anonymization",
              "disable_anonymization"
            ]
          },
          "default_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "custom_anonymization",
              "disable_anonymization"
            ]
          },
          "default_bot_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default bot setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "bot_protection_setting"
            ]
          },
          "default_detection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default detection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "detection_settings"
            ]
          },
          "detection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallDetectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for detection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_detection_settings"
            ]
          },
          "disable_ai_enhancements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable ai enhancements.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_ai_enhancements"
            ]
          },
          "disable_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_anonymization",
              "default_anonymization"
            ]
          },
          "enable_ai_enhancements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAIEnhancementsConfig"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable ai enhancements.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_ai_enhancements"
            ]
          },
          "monitoring": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "blocking"
            ]
          },
          "use_default_blocking_page": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "blocking_page"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "enforcement_mode_choice": "blocking",
          "detection_setting_choice": "detection_settings",
          "allowed_response_codes_choice": "allow_all_response_codes",
          "anonymization_setting": "default_anonymization",
          "blocking_page_choice": "use_default_blocking_page",
          "bot_protection_choice": "default_bot_setting",
          "enhance_with_ai_choice": "disable_ai_enhancements"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of app_firewall",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/app_firewallListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallListResponseItem": {
        "type": "object",
        "description": "By default a summary of app_firewall is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of app_firewall",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.app_firewall.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this app_firewall.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this app_firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this app_firewall.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this app_firewall.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates app_firewall is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates app_firewall is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallGetSpecType"
              }
            ],
            "description": "Desired state specification",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this app_firewall.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this app_firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "description": "Metadata associated with the resource",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this app_firewall.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "description": "Owner or responsible party",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/app_firewallStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "description": "Data or content configuration",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this app_firewall.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of app_firewall is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of app_firewall is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallMetricData": {
        "type": "object",
        "description": "Metric data contains the metric type and the corresponding metric value.",
        "title": "Metric Data",
        "x-displayname": "Metric Data.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.MetricData",
        "properties": {
          "data": {
            "type": "array",
            "description": "List of metric data.",
            "title": "Data",
            "items": {
              "$ref": "#/components/schemas/schemaapp_firewallMetricTypeData"
            },
            "x-displayname": "Data",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaapp_firewallMetricType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "unit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUnitType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Metric data contains the metric type and the corresponding metric value.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallMetricData",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallMetricLabel": {
        "type": "string",
        "description": "Labels in the Application Firewall metrics.\n\nRule hits counter and the security events counter can be sliced and diced based\non one or more labels listed below.\n\nNamespace in which this App Firewall instance is running\nVirtual host under which this App Firewall instance is running\nName of the BOT CLASSIFICATION\nName of the EVENT TYPE.",
        "enum": [
          "NAMESPACE",
          "VIRTUAL_HOST",
          "BOT_CLASSIFICATION",
          "EVENT_TYPE"
        ],
        "default": "NAMESPACE",
        "x-displayname": "Application Firewall Metric Label.",
        "x-ves-proto-enum": "ves.io.schema.app_firewall.MetricLabel",
        "x-f5xc-description-short": "Labels in the Application Firewall metrics.",
        "x-f5xc-description-medium": "Labels in the Application Firewall metrics. Rule hits counter and the security events counter can be sliced and diced based on one or more labels listed below. Namespace in which this App Firewall instance is running Virtual host under which this App Firewall instance is running Name of the BOT...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallMetricLabel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"NAMESPACE\"",
          "example_yaml": "NAMESPACE\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallMetricsRequest": {
        "type": "object",
        "description": "Request to GET the metrics for App Firewall.",
        "title": "Metrics Request",
        "x-displayname": "Metrics Request.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.MetricsRequest",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End time of metric collection from which data will be considered to build graph.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "End time",
            "x-displayname": "End Time",
            "x-ves-example": "1570197600.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570197600",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "End time of metric collection from which data will be considered to build graph.",
            "x-f5xc-description-medium": "End time of metric collection from which data will be considered to build graph. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "field_selector": {
            "type": "array",
            "description": "Select fields to be returned in the response.\nOne or more fields in {BOT_DETECTION, ATTACKED_REQUESTS, BLOCKED_REQUESTS, TOTAL_REQUESTS} can be specified.",
            "title": "Field Selector",
            "minItems": 1,
            "maxItems": 8,
            "items": {
              "$ref": "#/components/schemas/schemaapp_firewallMetricType"
            },
            "x-displayname": "Field Selector.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Select fields to be returned in the response.",
            "x-f5xc-description-medium": "Select fields to be returned in the response. One or more fields in {BOT_DETECTION, ATTACKED_REQUESTS, BLOCKED_REQUESTS, TOTAL_REQUESTS} can be specified.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 8,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "filter": {
            "type": "string",
            "description": "Filter is used to specify the list of matchers\nsyntax for filter := {[<matcher>]}\n<matcher> := <label><operator>\"<value>\"\n<label> := string\n<value> := string\n<operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\n=~ : regex match\n!~ : not regex match\n\nOptional: If not specified, metric will be aggregated based on the group_by labels.",
            "title": "Label Filter",
            "x-displayname": "Filter",
            "x-ves-example": "{NAMESPACE=\\\"example-namespace\"}",
            "x-f5xc-example": "\"{NAMESPACE=\\\"example-namespace\"}\"",
            "x-f5xc-description-short": "Filter is used to specify the list of matchers syntax for filter := {[<matcher>]} <matcher> := <label><operator>\"<value>\" <label> := string...",
            "x-f5xc-description-medium": "Filter is used to specify the list of matchers syntax for filter := {[<matcher>]} <matcher> := <label><operator>\"<value>\" <label> := string <value> := string <operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"] = : equal to != : not equal to =~ : regex match !~ : not regex match Optional: If not specified, metric...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "group_by": {
            "type": "array",
            "description": "Aggregate data by zero or more labels.",
            "title": "Group by",
            "items": {
              "$ref": "#/components/schemas/app_firewallMetricLabel"
            },
            "x-displayname": "Group By",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "is_trend_request": {
            "type": "boolean",
            "description": "Trend value computation requested by the user\nOptional: default is false.",
            "format": "boolean",
            "x-displayname": "Trend calculation requested by the user.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Trend value computation requested by the user Optional: default is false.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Human-readable name for the resource",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "System",
            "x-f5xc-example": "system",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "range": {
            "type": "string",
            "description": "Range decides how far to go back in time to fetch values for each step.\nFor example, if the range is 5m, then for step t1, query will be evaluated for t1-5m and for\nt2, query will be evaluated for t2-5m and so on.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nNote: For non-timeseries query, i.e., for step=end_time-start_time, range should be set to end_time-start_time\n\nOptional: If not specified, range is set to 5m.",
            "title": "Range",
            "x-displayname": "Range",
            "x-ves-example": "10m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "10m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Range decides how far to go back in time to fetch values for each step.",
            "x-f5xc-description-medium": "Range decides how far to go back in time to fetch values for each step. For example, if the range is 5m, then for step t1, query will be evaluated for t1-5m and for t2, query will be evaluated for t2-5m and so on. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Start time of metric collection from which data will be considered to build graph.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "Start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570194000.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570194000",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Start time of metric collection from which data will be considered to build graph.",
            "x-f5xc-description-medium": "Start time of metric collection from which data will be considered to build graph. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.\nThe timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nOptional: If not specified, then step size is evaluated to <end_time - start_time>",
            "title": "Step",
            "x-displayname": "Step",
            "x-ves-example": "5m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-example": "5m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-description-short": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.",
            "x-f5xc-description-medium": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response. The timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET the metrics for App Firewall.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallMetricsRequest",
          "required_fields": [
            "field_selector"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"field_selector\": [\n    \"BOT_DETECTION\"\n  ]\n}",
          "example_yaml": "field_selector:\n- BOT_DETECTION"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallMetricsResponse": {
        "type": "object",
        "description": "Metrics for DC Cluster Groups.",
        "title": "Metrics Response",
        "x-displayname": "Metrics Response.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.MetricsResponse",
        "properties": {
          "data": {
            "type": "array",
            "description": "Data contains time-series metric data for App Firewall.",
            "title": "Data",
            "items": {
              "$ref": "#/components/schemas/app_firewallMetricData"
            },
            "x-displayname": "Data",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Data contains time-series metric data for App Firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "title": "step",
            "x-displayname": "Step",
            "x-ves-example": "30m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "30m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.",
            "x-f5xc-description-medium": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallMetricsResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a app_firewall",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Web Application Firewall (WAF) policy for protecting HTTP applications",
          "required_fields": [],
          "mutually_exclusive_groups": [
            {
              "name": "enforcement_mode_choice",
              "fields": [
                "spec.monitoring",
                "spec.blocking"
              ],
              "reason": "Server default is monitoring (no blocking). Use blocking: {} for production WAF protection."
            },
            {
              "name": "detection_setting_choice",
              "fields": [
                "spec.default_detection_settings",
                "spec.detection_settings"
              ],
              "reason": "Server applies default_detection_settings: {} when omitted"
            },
            {
              "name": "allowed_response_codes_choice",
              "fields": [
                "spec.allow_all_response_codes",
                "spec.allowed_response_codes"
              ],
              "reason": "Server applies allow_all_response_codes: {} when omitted"
            },
            {
              "name": "bot_protection_choice",
              "fields": [
                "spec.default_bot_setting",
                "spec.bot_protection_setting"
              ],
              "reason": "Server applies default_bot_setting: {} when omitted"
            },
            {
              "name": "anonymization_setting",
              "fields": [
                "spec.default_anonymization",
                "spec.custom_anonymization",
                "spec.disable_anonymization"
              ],
              "reason": "Server applies default_anonymization: {} when omitted"
            },
            {
              "name": "blocking_page_choice",
              "fields": [
                "spec.use_default_blocking_page",
                "spec.blocking_page"
              ],
              "reason": "Server applies use_default_blocking_page: {} when omitted"
            },
            {
              "name": "enhance_with_ai_choice",
              "fields": [
                "spec.disable_ai_enhancements",
                "spec.enable_ai_enhancements"
              ],
              "reason": "Server applies disable_ai_enhancements: {} when omitted"
            }
          ],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.app_firewall.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallReplaceSpecType": {
        "type": "object",
        "description": "Replace Application Firewall.",
        "title": "Replace Application Firewall",
        "x-displayname": "Replace Application Firewall.",
        "x-ves-oneof-field-allowed_response_codes_choice": "[\"allow_all_response_codes\",\"allowed_response_codes\"]",
        "x-ves-oneof-field-anonymization_setting": "[\"custom_anonymization\",\"default_anonymization\",\"disable_anonymization\"]",
        "x-ves-oneof-field-blocking_page_choice": "[\"blocking_page\",\"use_default_blocking_page\"]",
        "x-ves-oneof-field-bot_protection_choice": "[\"bot_protection_setting\",\"default_bot_setting\"]",
        "x-ves-oneof-field-detection_setting_choice": "[\"default_detection_settings\",\"detection_settings\"]",
        "x-ves-oneof-field-enforcement_mode_choice": "[\"blocking\",\"monitoring\"]",
        "x-ves-oneof-field-enhance_with_ai_choice": "[\"disable_ai_enhancements\",\"enable_ai_enhancements\"]",
        "x-ves-proto-message": "ves.io.schema.app_firewall.ReplaceSpecType",
        "properties": {
          "allow_all_response_codes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow all response codes.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "allowed_response_codes"
            ]
          },
          "allowed_response_codes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAllowedResponseCodes"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed response codes.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_response_codes"
            ]
          },
          "blocking": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "monitoring"
            ]
          },
          "blocking_page": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallCustomBlockingPage"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_default_blocking_page"
            ]
          },
          "bot_protection_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallBotProtectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot protection setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_bot_setting"
            ]
          },
          "custom_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAnonymizationSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_anonymization",
              "disable_anonymization"
            ]
          },
          "default_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "custom_anonymization",
              "disable_anonymization"
            ]
          },
          "default_bot_setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default bot setting.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "bot_protection_setting"
            ]
          },
          "default_detection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default detection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "detection_settings"
            ]
          },
          "detection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallDetectionSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for detection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_detection_settings"
            ]
          },
          "disable_ai_enhancements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable ai enhancements.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_ai_enhancements"
            ]
          },
          "disable_anonymization": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable anonymization.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_anonymization",
              "default_anonymization"
            ]
          },
          "enable_ai_enhancements": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAIEnhancementsConfig"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable ai enhancements.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_ai_enhancements"
            ]
          },
          "monitoring": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "blocking"
            ]
          },
          "use_default_blocking_page": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "blocking_page"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "enforcement_mode_choice": "blocking",
          "detection_setting_choice": "detection_settings",
          "allowed_response_codes_choice": "allow_all_response_codes",
          "anonymization_setting": "default_anonymization",
          "blocking_page_choice": "use_default_blocking_page",
          "bot_protection_choice": "default_bot_setting",
          "enhance_with_ai_choice": "disable_ai_enhancements"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallSignatureSelectionSetting": {
        "type": "object",
        "description": "Attack Signatures are patterns that identify attacks on a web application and its components.",
        "title": "Attack Signatures",
        "x-displayname": "Attack Signatures.",
        "x-ves-displayorder": "5,1",
        "x-ves-oneof-field-attack_type_setting": "[\"attack_type_settings\",\"default_attack_type_settings\"]",
        "x-ves-oneof-field-signature_selection_by_accuracy": "[\"high_medium_accuracy_signatures\",\"high_medium_low_accuracy_signatures\",\"only_high_accuracy_signatures\"]",
        "x-ves-proto-message": "ves.io.schema.app_firewall.SignatureSelectionSetting",
        "properties": {
          "attack_type_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAttackTypeSettings"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for attack type settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_attack_type_settings"
            ]
          },
          "default_attack_type_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default attack type settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "attack_type_settings"
            ]
          },
          "high_medium_accuracy_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for high medium accuracy signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "high_medium_low_accuracy_signatures",
              "only_high_accuracy_signatures"
            ]
          },
          "high_medium_low_accuracy_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for high medium low accuracy signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "high_medium_accuracy_signatures",
              "only_high_accuracy_signatures"
            ]
          },
          "only_high_accuracy_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for only high accuracy signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "high_medium_accuracy_signatures",
              "high_medium_low_accuracy_signatures"
            ]
          }
        },
        "x-f5xc-description-short": "Attack Signatures are patterns that identify attacks on a web application and its components.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallSignatureSelectionSetting",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallSignaturesStagingSettings": {
        "type": "object",
        "description": "Attack Signatures staging configuration.",
        "title": "Attack Signatures Staging Settings",
        "x-displayname": "Attack Signatures Staging Settings.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.SignaturesStagingSettings",
        "properties": {
          "staging_period": {
            "type": "integer",
            "description": "Define staging period in days. The default staging period is 7 days and the max supported staging period is\n20 days.",
            "title": "Staging Period",
            "format": "int64",
            "x-displayname": "Staging Period.",
            "x-ves-example": "7",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "20"
            },
            "x-f5xc-example": "7",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "20"
            },
            "x-f5xc-description-short": "Define staging period in days. The default staging period is 7 days and the max supported staging period is 20 days.",
            "x-f5xc-description-medium": "Define staging period in days. The default staging period is 7 days and the max supported staging period is 20 days.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "timing",
              "minimum": 1,
              "maximum": 20,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "timing",
                "note": "Staging period in days. Default 7, max 20. Applies to both stage_new_and_updated_signatures and stage_new_signatures.",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Attack Signatures staging configuration.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallSignaturesStagingSettings",
          "required_fields": [
            "staging_period"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"staging_period\": 1\n}",
          "example_yaml": "staging_period: 1"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Application Firewall Status Object",
        "x-displayname": "Application Firewall Status Object.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallViolationConfigView": {
        "type": "object",
        "description": "Custom configuration for a violation.",
        "title": "Violation Config will be used by UI for view only",
        "x-displayname": "Violation Configuration.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.ViolationConfigView",
        "properties": {
          "description": {
            "type": "string",
            "title": "description",
            "x-displayname": "Description.",
            "description": "Human-readable description text",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "enabled": {
            "type": "boolean",
            "title": "user customised state",
            "format": "boolean",
            "x-displayname": "State",
            "description": "Enable or disable the feature",
            "x-f5xc-example": "True",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enabled_by_default": {
            "type": "string",
            "description": "Violations that are enabled by default by F5 are advisable to leave enabled.",
            "title": "enabled_by_default",
            "x-displayname": "Enabled by Default.",
            "x-f5xc-description-short": "Violations that are enabled by default by F5 are advisable to leave enabled.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "title": "code",
            "x-displayname": "Name",
            "description": "Human-readable name for the resource",
            "x-f5xc-example": "example-resource",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "title": {
            "type": "string",
            "title": "name",
            "x-displayname": "Title",
            "description": "Human-readable title for the resource",
            "x-f5xc-example": "example-resource",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 6,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallViolationConfigView",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_firewallViolationSettings": {
        "type": "object",
        "description": "Specifies violation settings to be used by WAF.",
        "title": "Violation Settings",
        "x-displayname": "Violation Settings.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.ViolationSettings",
        "properties": {
          "disabled_violation_types": {
            "type": "array",
            "description": "List of violations to be excluded.",
            "title": "Disabled Violations",
            "maxItems": 40,
            "items": {
              "$ref": "#/components/schemas/app_firewallAppFirewallViolationType"
            },
            "x-displayname": "Disabled Violations.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "40",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "40",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 40,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies violation settings to be used by WAF.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_firewallViolationSettings",
          "required_fields": [
            "disabled_violation_types"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"disabled_violation_types\": [\n    \"VIOL_NONE\"\n  ]\n}",
          "example_yaml": "disabled_violation_types:\n- VIOL_NONE"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ioschemaEmpty": {
        "type": "object",
        "description": "This can be used for messages where no values are needed.",
        "title": "Empty",
        "x-displayname": "Empty",
        "x-ves-proto-message": "ves.io.schema.Empty",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ioschemaEmpty",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "protobufAny": {
        "type": "object",
        "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\nFoo foo = ...;\nAny any;\nany.packfrom(foo);\n...\nIf (any.unpackto(&foo)) {\n...\n}\n\nExample 2: Pack and unpack a message in Java.\n\nFoo foo = ...;\nAny any = any.pack(foo);\n...\nIf (any.is(foo.class)) {\nfoo = any.unpack(foo.class);\n}\n\nExample 3: Pack and unpack a message in Python.\n\nFoo = Foo(...)\nany = Any()\nany.pack(foo)\n...\nIf any.is(foo.descriptor):\nany.unpack(foo)\n...\n\nExample 4: Pack and unpack a message in Go\n\nfoo := &pb.foo{...}\nany, err := ptypes.marshalany(foo)\n...\nFoo := &pb.foo{}\nif err := ptypes.unmarshalany(any, foo); err != nil {\n...\n}\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.example.com/x/y.z\" will yield type\nname \"y.z\".\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\npackage google.profile;\nmessage Person {\nstring first_name = 1;\nstring last_name = 2;\n}\n\n{\n\"@type\": \"type.googleapis.com/google.profile.person\",\n\"firstName\": <string>,\n\"lastName\": <string>\n}\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.duration][]):\n\n{\n\"@type\": \"type.googleapis.com/google.protobuf.duration\",\n\"value\": \"1.212s\"\n}",
        "properties": {
          "type_url": {
            "type": "string",
            "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `HTTP`, `HTTPS`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `HTTPS` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.type][]\nvalue in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\nURL, or have them precompiled into a binary to avoid any\nlookup. Therefore, binary compatibility needs to be preserved\non changes to types. (Use versioned type names to manage\nbreaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `HTTP`, `HTTPS` (or the empty scheme) might be\nused with implementation specific semantics.",
            "x-f5xc-description-short": "URL identifying the protocol buffer message type.",
            "x-f5xc-description-medium": "URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one \"/\" character. The last segment of the URL's path must represent the fully qualified name of the type (as in ).",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Must be a valid serialized protocol buffer of the above specified type.",
            "format": "byte",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "byte",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message.",
        "x-f5xc-description-medium": "Contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Protobuf library provides support to pack/unpack Any values in the form of utility functions or additional generated methods of the Any type. Example 1: Pack and unpack a...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protobufAny",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaConditionType": {
        "type": "object",
        "description": "Conditions are used in the object status to describe the current state of the\nobject, e.g. Ready, Succeeded, etc.",
        "title": "ConditionType",
        "x-displayname": "Status Condition.",
        "x-ves-proto-message": "ves.io.schema.ConditionType",
        "properties": {
          "hostname": {
            "type": "string",
            "description": "Hostname of the instance of the site that sent the status.",
            "title": "hostname",
            "x-displayname": "Hostname",
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Hostname of the instance of the site that sent the status.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "network",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
              "format": "fqdn",
              "validation": {
                "rfc": "RFC 1123"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.95,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
            "minLength": 1
          },
          "last_update_time": {
            "type": "string",
            "description": "Last time the condition was updated.",
            "title": "last_update_time",
            "format": "date-time",
            "x-displayname": "Last Updated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "reason": {
            "type": "string",
            "description": "A human readable string explaining the reason for reaching this condition.",
            "title": "reason",
            "x-displayname": "Reason",
            "x-ves-example": "Insufficient memory in data plane.",
            "x-f5xc-example": "Insufficient memory in data plane",
            "x-f5xc-description-short": "Human readable string explaining the reason for reaching this condition.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 27,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "service_name": {
            "type": "string",
            "description": "Name of the service that sent the status.",
            "title": "service name",
            "x-displayname": "Service Name.",
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Name of the service that sent the status.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "string",
            "description": "Status of the condition\n\"Success\" Validation has succeeded. Requested operation was successful.\n\"Failed\" Validation has failed.\n\"Incomplete\" Validation of configuration has failed due to missing configuration.\n\"Installed\" Validation has passed and configuration has been installed in data path or K8s\n\"Down\" Configuration is operationally down. E.g. Down interface\n\"Disabled\" Configuration is administratively disabled i.e. objectmetatype.disable = true.\n\"NotApplicable\" Configuration is not applicable e.g. Tenant service_policy_set(s) in system namespace are not applicable on REs.",
            "title": "status",
            "x-displayname": "Status",
            "x-ves-example": "Failed",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"Success\\\",\\\"Failed\\\",\\\"Incomplete\\\",\\\"Installed\\\",\\\"Down\\\",\\\"Disabled\\\",\\\"NotApplicable\\\"]"
            },
            "x-f5xc-example": "Failed",
            "x-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"Success\\\",\\\"Failed\\\",\\\"Incomplete\\\",\\\"Installed\\\",\\\"Down\\\",\\\"Disabled\\\",\\\"NotApplicable\\\"]"
            },
            "x-f5xc-description-short": "Status of the condition \"Success\" Validation has succeeded.",
            "x-f5xc-description-medium": "Status of the condition \"Success\" Validation has succeeded. Requested operation was successful. \"Failed\" Validation has failed. \"Incomplete\" Validation of configuration has failed due to missing configuration. \"Installed\" Validation has passed and configuration has been installed in data path or...",
            "maxLength": 1024,
            "enum": [
              "Success",
              "Failed",
              "Incomplete",
              "Installed",
              "Down",
              "Disabled",
              "NotApplicable"
            ],
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "type": {
            "type": "string",
            "description": "Type of the condition\n\"Validation\" represents validation user given configuration object\n\"Operational\" represents operational status of a given configuration object.",
            "title": "type",
            "x-displayname": "Type",
            "x-ves-example": "Operational.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"Validation\\\",\\\"Operational\\\"]"
            },
            "x-f5xc-example": "Operational",
            "x-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"Validation\\\",\\\"Operational\\\"]"
            },
            "x-f5xc-description-short": "Type of the condition \"Validation\" represents validation user given configuration object \"Operational\" represents operational status of a given...",
            "x-f5xc-description-medium": "Type of the condition \"Validation\" represents validation user given configuration object \"Operational\" represents operational status of a given configuration object.",
            "maxLength": 1024,
            "enum": [
              "Validation",
              "Operational"
            ],
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Conditions are used in the object status to describe the current state of the object, e.g.",
        "x-f5xc-description-medium": "Conditions are used in the object status to describe the current state of the object, e.g. Ready, Succeeded, etc.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaConditionType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaErrorCode": {
        "type": "string",
        "description": "Union of all possible error-codes from system\n\n- EOK: No error\n- EPERMS: Permissions error\n- EBADINPUT: Input is not correct\n- ENOTFOUND: Not found\n- EEXISTS: Already exists\n- EUNKNOWN: Unknown/catchall error\n- ESERIALIZE: Error in serializing/de-serializing\n- EINTERNAL: Server error\n- EPARTIAL: Partial error.",
        "title": "ErrorCode",
        "enum": [
          "EOK",
          "EPERMS",
          "EBADINPUT",
          "ENOTFOUND",
          "EEXISTS",
          "EUNKNOWN",
          "ESERIALIZE",
          "EINTERNAL",
          "EPARTIAL"
        ],
        "default": "EOK",
        "x-displayname": "Error Code.",
        "x-ves-proto-enum": "ves.io.schema.ErrorCode",
        "x-f5xc-description-short": "Union of all possible error-codes from system - EOK: No error - EPERMS: Permissions error - EBADINPUT: Input is not correct - ENOTFOUND: Not found...",
        "x-f5xc-description-medium": "Union of all possible error-codes from system - EOK: No error - EPERMS: Permissions error - EBADINPUT: Input is not correct - ENOTFOUND: Not found - EEXISTS: Already exists - EUNKNOWN: Unknown/catchall error - ESERIALIZE: Error in serializing/de-serializing - EINTERNAL: Server error - EPARTIAL...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaErrorCode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"EOK\"",
          "example_yaml": "EOK\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaErrorType__ves_io_schema_ai_assistant": {
        "type": "object",
        "description": "Information about a error in API operation.",
        "title": "ErrorType",
        "x-displayname": "Error Type.",
        "x-ves-proto-message": "ves.io.schema.ErrorType",
        "properties": {
          "code": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaErrorCode"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "error_obj": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protobufAny"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "message": {
            "type": "string",
            "description": "A human readable string of the error.",
            "title": "message",
            "x-displayname": "Message",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Information about a error in API operation.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaErrorType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaHttpStatusCode": {
        "type": "string",
        "description": "HTTP response status codes\n\nEmptyStatusCode response codes means it is not specified\nContinue status code\nOK status code\nCreated status code\nAccepted status code\nNon Authoritative Information status code\nNo Content status code\nReset Content status code\nPartial Content status code\nMulti Status status code\nAlready Reported status code\nIm Used status code\nMultiple Choices status code\nMoved Permanently status code\nFound status code\nSee Other status code\nNot Modified status code\nUse Proxy status code\nTemporary Redirect status code\nPermanent Redirect status code\nBad Request status code\nUnauthorized status code\nPayment Required status code\nForbidden status code\nNot Found status code\nMethod Not Allowed status code\nNot Acceptable status code\nProxy Authentication Required status code\nRequest Timeout status code\nConflict status code\nGone status code\nLength Required status code\nPrecondition Failed status code\nPayload Too Large status code\nURI Too Long status code\nUnsupported Media Type status code\nRange Not Satisfiable status code\nExpectation Failed status code\nMisdirected Request status code\nUnprocessable Entity status code\nLocked status code\nFailed Dependency status code\nUpgrade Required status code\nPrecondition Required status code\nToo Many Requests status code\nRequest Header Fields Too Large status code\nInternal Server Error status code\nNot Implemented status code\nBad Gateway status code\nService Unavailable status code\nGateway Timeout status code\nHTTP Version Not Supported status code\nVariant Also Negotiates status code\nInsufficient Storage status code\nLoop Detected status code\nNot Extended status code\nNetwork Authentication Required status code.",
        "title": "HttpStatusCode",
        "enum": [
          "EmptyStatusCode",
          "Continue",
          "OK",
          "Created",
          "Accepted",
          "NonAuthoritativeInformation",
          "NoContent",
          "ResetContent",
          "PartialContent",
          "MultiStatus",
          "AlreadyReported",
          "IMUsed",
          "MultipleChoices",
          "MovedPermanently",
          "Found",
          "SeeOther",
          "NotModified",
          "UseProxy",
          "TemporaryRedirect",
          "PermanentRedirect",
          "BadRequest",
          "Unauthorized",
          "PaymentRequired",
          "Forbidden",
          "NotFound",
          "MethodNotAllowed",
          "NotAcceptable",
          "ProxyAuthenticationRequired",
          "RequestTimeout",
          "Conflict",
          "Gone",
          "LengthRequired",
          "PreconditionFailed",
          "PayloadTooLarge",
          "URITooLong",
          "UnsupportedMediaType",
          "RangeNotSatisfiable",
          "ExpectationFailed",
          "MisdirectedRequest",
          "UnprocessableEntity",
          "Locked",
          "FailedDependency",
          "UpgradeRequired",
          "PreconditionRequired",
          "TooManyRequests",
          "RequestHeaderFieldsTooLarge",
          "InternalServerError",
          "NotImplemented",
          "BadGateway",
          "ServiceUnavailable",
          "GatewayTimeout",
          "HTTPVersionNotSupported",
          "VariantAlsoNegotiates",
          "InsufficientStorage",
          "LoopDetected",
          "NotExtended",
          "NetworkAuthenticationRequired"
        ],
        "default": "EmptyStatusCode",
        "x-displayname": "HTTP Status Code.",
        "x-ves-proto-enum": "ves.io.schema.HttpStatusCode",
        "x-f5xc-description-short": "HTTP response status codes EmptyStatusCode response codes means it is not specified Continue status code OK status code Created status code...",
        "x-f5xc-description-medium": "HTTP response status codes EmptyStatusCode response codes means it is not specified Continue status code OK status code Created status code Accepted status code Non Authoritative Information status code No Content status code Reset Content status code Partial Content status code Multi Status...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaHttpStatusCode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"EmptyStatusCode\"",
          "example_yaml": "EmptyStatusCode\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaInitializerType": {
        "type": "object",
        "description": "Initializer is information about an initializer that has not yet completed.",
        "title": "InitializerType",
        "x-displayname": "Initializer.",
        "x-ves-proto-message": "ves.io.schema.InitializerType",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the service that is responsible for initializing this object.",
            "title": "name",
            "x-displayname": "Name",
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Name of the service that is responsible for initializing this object.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Initializer is information about an initializer that has not yet completed.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaInitializerType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaInitializersType__ves_io_schema_api_sec_api_crawler": {
        "type": "object",
        "description": "Initializers tracks the progress of initialization of a configuration object.",
        "title": "InitializersType",
        "x-displayname": "Initializers.",
        "x-ves-proto-message": "ves.io.schema.InitializersType",
        "properties": {
          "pending": {
            "type": "array",
            "description": "Pending is a list of initializers that must execute in order before this object is initialized.\nWhen the last pending initializer is removed, and no failing result is set, the initializers\nstruct will be set to nil and the object is considered as initialized and visible to all\nclients.",
            "title": "pending",
            "items": {
              "$ref": "#/components/schemas/schemaInitializerType"
            },
            "x-displayname": "Pending",
            "x-f5xc-description-short": "Pending is a list of initializers that must execute in order before this object is initialized.",
            "x-f5xc-description-medium": "Pending is a list of initializers that must execute in order before this object is initialized. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "result": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Initializers tracks the progress of initialization of a configuration object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaInitializersType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaMetricValue": {
        "type": "object",
        "description": "Metric data contains timestamp and the value.",
        "title": "Metric Value",
        "x-displayname": "Metric Value.",
        "x-ves-proto-message": "ves.io.schema.MetricValue",
        "properties": {
          "timestamp": {
            "type": "number",
            "description": "Timestamp",
            "title": "Timestamp",
            "format": "double",
            "x-displayname": "Timestamp",
            "x-ves-example": "1570007981.",
            "x-f5xc-example": "1570007981",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "trend_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTrendValue"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for trend value.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Configuration parameter for value",
            "title": "Value",
            "x-displayname": "Value",
            "x-ves-example": "15",
            "x-f5xc-example": "15",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Metric data contains timestamp and the value.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaMetricValue",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaObjectCreateMetaType": {
        "type": "object",
        "description": "ObjectCreateMetaType is metadata that can be specified in Create request of an object.",
        "title": "ObjectCreateMetaType",
        "x-displayname": "Create Metadata.",
        "x-ves-proto-message": "ves.io.schema.ObjectCreateMetaType",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "Annotations is an unstructured key value map stored with a resource that may be\nset by external tools to store and retrieve arbitrary metadata. They are not\nqueryable and should be preserved when modifying objects.",
            "title": "annotations",
            "x-displayname": "Annotation.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "64",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.values.string.max_len": "1024",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "64",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.values.string.max_len": "1024",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-description-short": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.",
            "x-f5xc-description-medium": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "Human readable description for the object.",
            "title": "description",
            "maxLength": 1200,
            "x-displayname": "Description.",
            "x-ves-example": "Virtual Host for Example Corp website.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1200"
            },
            "x-f5xc-example": "Virtual Host for Example Corp website",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1200"
            },
            "x-f5xc-description-short": "Human readable description for the object.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1200,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "byteLength": {
                "max": 1200
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disable": {
            "type": "boolean",
            "description": "A value of true will administratively disable the object.",
            "title": "disable",
            "format": "boolean",
            "x-displayname": "Disable",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Value of true will administratively disable the object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "Map of string keys and values that can be used to organize and categorize\n(scope and select) objects as chosen by the user. Values specified here will be used\nby selector expression.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user.",
            "x-f5xc-description-medium": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user. Values specified here will be used by selector expression.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "This is the name of configuration object. It has to be unique within the namespace.\nIt can only be specified during create API and cannot be changed during replace API.\nThe value of name has to follow DNS-1035 format.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Example-corp-web.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "example-corp-web",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Name of configuration object. It has to be unique within the namespace.",
            "x-f5xc-description-medium": "Name of configuration object. It has to be unique within the namespace. It can only be specified during create API and cannot be changed during replace API.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "This defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Staging",
            "x-f5xc-example": "staging",
            "x-f5xc-description-short": "Defines the workspace within which each the configuration object is to be created.",
            "x-f5xc-description-medium": "Defines the workspace within which each the configuration object is to be created. Must be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\".",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "ObjectCreateMetaType is metadata that can be specified in Create request of an object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaObjectCreateMetaType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"example-corp-web\"\n}",
          "example_yaml": "name: example-corp-web"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaObjectGetMetaType": {
        "type": "object",
        "description": "ObjectGetMetaType is metadata that can be specified in GET/Create response of an object.",
        "title": "ObjectGetMetaType",
        "x-displayname": "GET Metadata.",
        "x-ves-proto-message": "ves.io.schema.ObjectGetMetaType",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "Annotations is an unstructured key value map stored with a resource that may be\nset by external tools to store and retrieve arbitrary metadata. They are not\nqueryable and should be preserved when modifying objects.",
            "title": "annotations",
            "x-displayname": "Annotation.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "64",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.values.string.max_len": "1024",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "64",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.values.string.max_len": "1024",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-description-short": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.",
            "x-f5xc-description-medium": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "Human readable description for the object.",
            "title": "description",
            "maxLength": 1200,
            "x-displayname": "Description.",
            "x-ves-example": "Virtual Host for Example Corp website.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1200"
            },
            "x-f5xc-example": "Virtual Host for Example Corp website",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1200"
            },
            "x-f5xc-description-short": "Human readable description for the object.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1200,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "byteLength": {
                "max": 1200
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disable": {
            "type": "boolean",
            "description": "A value of true will administratively disable the object.",
            "title": "disable",
            "format": "boolean",
            "x-displayname": "Disable",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Value of true will administratively disable the object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "Map of string keys and values that can be used to organize and categorize\n(scope and select) objects as chosen by the user. Values specified here will be used\nby selector expression.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user.",
            "x-f5xc-description-medium": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user. Values specified here will be used by selector expression.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "This is the name of configuration object. It has to be unique within the namespace.\nIt can only be specified during create API and cannot be changed during replace API.\nThe value of name has to follow DNS-1035 format.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Example-corp-web.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "example-corp-web",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Name of configuration object. It has to be unique within the namespace.",
            "x-f5xc-description-medium": "Name of configuration object. It has to be unique within the namespace. It can only be specified during create API and cannot be changed during replace API.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "This defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Staging",
            "x-f5xc-example": "staging",
            "x-f5xc-description-short": "Defines the workspace within which each the configuration object is to be created.",
            "x-f5xc-description-medium": "Defines the workspace within which each the configuration object is to be created. Must be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\".",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "ObjectGetMetaType is metadata that can be specified in GET/Create response of an object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaObjectGetMetaType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"example-corp-web\"\n}",
          "example_yaml": "name: example-corp-web"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaObjectRefType": {
        "type": "object",
        "description": "This type establishes a 'direct reference' from one object(the referrer) to another(the referred).\nSuch a reference is in form of tenant/namespace/name for public API and Uid for private API\nThis type of reference is called direct because the relation is explicit and concrete (as opposed\nto selector reference which builds a group based on labels of selectee objects)",
        "title": "ObjectRefType",
        "x-displayname": "Object reference.",
        "x-ves-proto-message": "ves.io.schema.ObjectRefType",
        "properties": {
          "kind": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen kind will hold the referred object's kind (e.g. \"route\")",
            "title": "kind",
            "x-displayname": "Kind",
            "x-ves-example": "Virtual_site.",
            "x-f5xc-example": "virtual_site",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object's kind (e.g. \"route\")",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object's kind (e.g. \"route\").",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "readOnly": true,
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "name": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen name will hold the referred object's(e.g. Route's) name.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Contactus-route.",
            "x-f5xc-example": "contactus-route",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 6,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "namespace": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen namespace will hold the referred object's(e.g. Route's) namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "tenant": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen tenant will hold the referred object's(e.g. Route's) tenant.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "readOnly": true,
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen uid will hold the referred object's(e.g. Route's) uid.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-0df41b679859.",
            "x-f5xc-example": "00000000-0000-4000-8000-0df41b679859",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object's(e.g. Route's) uid.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "readOnly": true,
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Type establishes a 'direct reference' from one object(the referrer) to another(the referred).",
        "x-f5xc-description-medium": "Type establishes a 'direct reference' from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name for public API and Uid for private API This type of reference is called direct because the relation is explicit and concrete (as opposed to selector...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaObjectRefType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaObjectReplaceMetaType": {
        "type": "object",
        "description": "ObjectReplaceMetaType is metadata that can be specified in Replace request of an object.",
        "title": "ObjectReplaceMetaType",
        "x-displayname": "Replace Metadata.",
        "x-ves-proto-message": "ves.io.schema.ObjectReplaceMetaType",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "Annotations is an unstructured key value map stored with a resource that may be\nset by external tools to store and retrieve arbitrary metadata. They are not\nqueryable and should be preserved when modifying objects.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "64",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.values.string.max_len": "1024",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "64",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.values.string.max_len": "1024",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-description-short": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.",
            "x-f5xc-description-medium": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "Human readable description for the object.",
            "title": "description",
            "maxLength": 1200,
            "x-displayname": "Description.",
            "x-ves-example": "Virtual Host for Example Corp website.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1200"
            },
            "x-f5xc-example": "Virtual Host for Example Corp website",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1200"
            },
            "x-f5xc-description-short": "Human readable description for the object.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1200,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "byteLength": {
                "max": 1200
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disable": {
            "type": "boolean",
            "description": "A value of true will administratively disable the object.",
            "title": "disable",
            "format": "boolean",
            "x-displayname": "Disable",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Value of true will administratively disable the object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "Map of string keys and values that can be used to organize and categorize\n(scope and select) objects as chosen by the user. Values specified here will be used\nby selector expression.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user.",
            "x-f5xc-description-medium": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user. Values specified here will be used by selector expression.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "This is the name of configuration object. It has to be unique within the namespace.\nIt can only be specified during create API and cannot be changed during replace API.\nThe value of name has to follow DNS-1035 format.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Example-corp-web.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "example-corp-web",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Name of configuration object. It has to be unique within the namespace.",
            "x-f5xc-description-medium": "Name of configuration object. It has to be unique within the namespace. It can only be specified during create API and cannot be changed during replace API.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "This defines the workspace within which each the configuration object is to be created.\nMust be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\"",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Staging",
            "x-f5xc-example": "staging",
            "x-f5xc-description-short": "Defines the workspace within which each the configuration object is to be created.",
            "x-f5xc-description-medium": "Defines the workspace within which each the configuration object is to be created. Must be a DNS_LABEL format. For a namespace object itself, namespace value will be \"\".",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "ObjectReplaceMetaType is metadata that can be specified in Replace request of an object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaObjectReplaceMetaType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"example-corp-web\"\n}",
          "example_yaml": "name: example-corp-web"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaStatusMetaType": {
        "type": "object",
        "description": "StatusMetaType is metadata that all status must have.",
        "title": "StatusMetaType",
        "x-displayname": "Metadata",
        "x-ves-proto-message": "ves.io.schema.StatusMetaType",
        "properties": {
          "creation_timestamp": {
            "type": "string",
            "description": "Creation_timestamp is when the status object was created. It is used to find/tie-break\nfor latest status object from same origin.",
            "title": "creation_timestamp",
            "format": "date-time",
            "x-displayname": "Creation Timestamp.",
            "x-f5xc-description-short": "Creation_timestamp is when the status object was created. It is used to find/tie-break for latest status object from same origin.",
            "x-f5xc-description-medium": "Creation_timestamp is when the status object was created. It is used to find/tie-break for latest status object from same origin.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "creator_class": {
            "type": "string",
            "description": "Class of creator which created this StatusObject. This will be service's DNS FQDN.\nThis will be set by the system based on client certificate information.",
            "title": "creator_class",
            "x-displayname": "Creator Class.",
            "x-ves-example": "ver.re1.int.ves.I/O.",
            "x-f5xc-example": "ver.re1.int.F5 XC",
            "x-f5xc-description-short": "Class of creator which created this StatusObject. This will be service's DNS FQDN.",
            "x-f5xc-description-medium": "Class of creator which created this StatusObject. This will be service's DNS FQDN. This will be set by the system based on client certificate information.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "creator_id": {
            "type": "string",
            "description": "ID of creator which created this StatusObject. This will be a concrete identifier for service (e.g.\nIdentifying the environment also). This will be set by the system based on client certificate\ninformation.",
            "title": "creator_id",
            "x-displayname": "Creator ID.",
            "x-ves-example": "Ver-instance-1.",
            "x-f5xc-example": "ver-instance-1",
            "x-f5xc-description-short": "ID of creator which created this StatusObject. This will be a concrete identifier for service (e.g.",
            "x-f5xc-description-medium": "ID of creator which created this StatusObject. This will be a concrete identifier for service (e.g. Identifying the environment also). This will be set by the system based on client certificate information.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "publish": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusPublishType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status_id": {
            "type": "string",
            "description": "Status_id is a field used by the generator to distinguish (if necessary) between two status\nobjects for the same config object from the same site and same service and potentially same\ndaemon(creator-ID)",
            "title": "status_id",
            "x-displayname": "Status ID",
            "x-f5xc-description-short": "Status_id is a field used by the generator to distinguish (if necessary) between two status objects for the same config object from the same site...",
            "x-f5xc-description-medium": "Status_id is a field used by the generator to distinguish (if necessary) between two status objects for the same config object from the same site and same service and potentially same daemon(creator-ID).",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "uid": {
            "type": "string",
            "description": "Uid is the unique in time and space value for a StatusObject.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-0df41b679859.",
            "x-f5xc-example": "00000000-0000-4000-8000-0df41b679859",
            "x-f5xc-description-short": "Uid is the unique in time and space value for a StatusObject.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "vtrp_id": {
            "type": "string",
            "description": "Origin of this status exchanged by VTRP.",
            "title": "vtrp_id",
            "x-displayname": "VTRP ID",
            "x-f5xc-description-short": "Origin of this status exchanged by VTRP.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "vtrp_stale": {
            "type": "boolean",
            "description": "Indicate whether mars deems this object to be stale via graceful restart timer information.",
            "title": "vtrp_stale",
            "format": "boolean",
            "x-displayname": "VTRP Stale.",
            "x-f5xc-description-short": "Indicate whether mars deems this object to be stale via graceful restart timer information.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "StatusMetaType is metadata that all status must have.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaStatusMetaType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaStatusPublishType": {
        "type": "string",
        "description": "StatusPublishType is all possible publish operations on a StatusObject\n\n- STATUS_DO_NOT_PUBLISH: Do Not Publish\n\nDo not propagate this status to user. This could be because status is only informational\n- STATUS_PUBLISH: Publish\n\nPropagate this status up to user as it might be actionable.",
        "title": "StatusPublishType",
        "enum": [
          "STATUS_DO_NOT_PUBLISH",
          "STATUS_PUBLISH"
        ],
        "default": "STATUS_DO_NOT_PUBLISH",
        "x-displayname": "Status Publish Type.",
        "x-ves-proto-enum": "ves.io.schema.StatusPublishType",
        "x-f5xc-description-short": "StatusPublishType is all possible publish operations on a StatusObject - STATUS_DO_NOT_PUBLISH: Do Not Publish Do not propagate this status to user.",
        "x-f5xc-description-medium": "StatusPublishType is all possible publish operations on a StatusObject - STATUS_DO_NOT_PUBLISH: Do Not Publish Do not propagate this status to user. This could be because status is only informational - STATUS_PUBLISH: Publish Propagate this status up to user as it might be actionable.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaStatusPublishType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"STATUS_DO_NOT_PUBLISH\"",
          "example_yaml": "STATUS_DO_NOT_PUBLISH\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaStatusType": {
        "type": "object",
        "description": "Status is a return value for calls that don't return other objects.",
        "title": "StatusType",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.StatusType",
        "properties": {
          "code": {
            "type": "integer",
            "description": "Suggested HTTP return code for this status, 0 if not set.",
            "title": "code",
            "format": "int32",
            "x-displayname": "Code",
            "x-ves-example": "0",
            "x-f5xc-example": "0",
            "x-f5xc-description-short": "Suggested HTTP return code for this status, 0 if not set.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "reason": {
            "type": "string",
            "description": "A human-readable description of why this operation is in the\n\"Failure\" status. If this value is empty there\nis no information available.",
            "title": "reason",
            "x-displayname": "Reason",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Human-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available.",
            "x-f5xc-description-medium": "Human-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 27,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "status": {
            "type": "string",
            "description": "Status of the operation.\nOne of: \"Success\" or \"Failure\".",
            "title": "status",
            "x-displayname": "Status",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Status of the operation. One of: \"Success\" or \"Failure\".",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Status is a return value for calls that don't return other objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaStatusType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler": {
        "type": "object",
        "description": "SystemObjectGetMetaType is metadata generated or populated by the system for all persisted objects and\ncannot be updated directly by users.",
        "title": "SystemObjectGetMetaType",
        "x-displayname": "System Metadata.",
        "x-ves-proto-message": "ves.io.schema.SystemObjectGetMetaType",
        "properties": {
          "creation_timestamp": {
            "type": "string",
            "description": "CreationTimestamp is a timestamp representing the server time when this object was\ncreated. It is not guaranteed to be set in happens-before order across separate operations.\nClients may not set this value. It is represented in RFC3339 form and is in UTC.",
            "title": "creation_timestamp",
            "format": "date-time",
            "x-displayname": "Creation Timestamp.",
            "x-f5xc-description-short": "CreationTimestamp is a timestamp representing the server time when this object was created.",
            "x-f5xc-description-medium": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "creator_class": {
            "type": "string",
            "description": "A value identifying the class of the user or service which created this configuration object.",
            "title": "creator_class",
            "x-displayname": "Creator Class.",
            "x-ves-example": "Prism",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Value identifying the class of the user or service which created this configuration object.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "creator_id": {
            "type": "string",
            "description": "A value identifying the exact user or service that created this configuration object.",
            "title": "creator_id",
            "x-displayname": "Creator ID.",
            "x-ves-example": "Admin@example.com.",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Value identifying the exact user or service that created this configuration object.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "deletion_timestamp": {
            "type": "string",
            "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\nfield is set by the server when a graceful deletion is requested by the user, and is not\ndirectly settable by a client. The resource is expected to be deleted (no longer visible\nfrom resource lists, and not reachable by name) after the time in this field, once the\nfinalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\nOnce the deletionTimestamp is set, this value may not be unset or be set further into the\nfuture, although it may be shortened or the resource may be deleted prior to this time.\nFor example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\nby sending a graceful termination signal to the containers in the pod. After that 30 seconds,\nthe Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\nremove the pod from the API. In the presence of network partitions, this object may still\nexist after this timestamp, until an administrator or automated process can determine the\nresource is fully terminated.\nIf not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested.\nRead-only.",
            "title": "deletion_timestamp",
            "format": "date-time",
            "x-displayname": "Deletion Timestamp.",
            "x-f5xc-description-short": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted.",
            "x-f5xc-description-medium": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "finalizers": {
            "type": "array",
            "description": "Must be empty before the object is deleted from the registry. Each entry\nis an identifier for the responsible component that will remove the entry\nfrom the list. If the deletionTimestamp of the object is non-nil, entries\nin this list can only be removed.",
            "title": "finalizers",
            "items": {
              "type": "string"
            },
            "x-displayname": "Finalizers.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Must be empty before the object is deleted from the registry.",
            "x-f5xc-description-medium": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "initializers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaInitializersType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for initializers.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "Map of string keys and values that can be used to organize and categorize\n(scope and select) objects as chosen by the operator or software. Values here can be interpreted\nby software(backend or frontend) to enable certain behavior e.g. Things marked as soft-deleted(restorable).",
            "title": "labels",
            "x-displayname": "Labels",
            "x-ves-example": "'VES.I/O/soft-deleted': 'true'",
            "x-f5xc-example": "'F5 XC/soft-deleted''true'",
            "x-f5xc-description-short": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the operator or software.",
            "x-f5xc-description-medium": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the operator or software. Values here can be interpreted by software(backend or frontend) to enable certain behavior e.g. Things marked as soft-deleted(restorable).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "modification_timestamp": {
            "type": "string",
            "description": "ModificationTimestamp is a timestamp representing the server time when this object was\nlast modified.",
            "title": "modification_timestamp",
            "format": "date-time",
            "x-displayname": "Modification Timestamp.",
            "x-f5xc-description-short": "ModificationTimestamp is a timestamp representing the server time when this object was last modified.",
            "x-f5xc-description-medium": "ModificationTimestamp is a timestamp representing the server time when this object was last modified.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "object_index": {
            "type": "integer",
            "description": "Unique index for the object. Some objects need a unique integer index to be allocated\nfor each object type. This field will be populated for all objects that need it and will\nbe zero otherwise.",
            "title": "object_index",
            "format": "int64",
            "x-displayname": "Object Index.",
            "x-ves-example": "0",
            "x-f5xc-example": "0",
            "x-f5xc-description-short": "Unique index for the object. Some objects need a unique integer index to be allocated for each object type.",
            "x-f5xc-description-medium": "Unique index for the object. Some objects need a unique integer index to be allocated for each object type. This field will be populated for all objects that need it and will be zero otherwise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "tenant": {
            "type": "string",
            "description": "Tenant to which this configuration object belongs to. The value for this is found from\npresented credentials.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "x-f5xc-description-short": "Tenant to which this configuration object belongs to. The value for this is found from presented credentials.",
            "x-f5xc-description-medium": "Tenant to which this configuration object belongs to. The value for this is found from presented credentials.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "Uid is the unique in time and space value for this object. It is generated by\nthe server on successful creation of an object and is not allowed to change on Replace\nAPI. The value of is taken from uid field of ObjectMetaType, if provided.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-0df41b679859.",
            "x-f5xc-example": "00000000-0000-4000-8000-0df41b679859",
            "x-f5xc-description-short": "Uid is the unique in time and space value for this object.",
            "x-f5xc-description-medium": "Uid is the unique in time and space value for this object. It is generated by the server on successful creation of an object and is not allowed to change on Replace API. The value of is taken from uid field of ObjectMetaType, if provided.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "SystemObjectGetMetaType is metadata generated or populated by the system for all persisted objects and cannot be updated directly by users.",
        "x-f5xc-description-medium": "SystemObjectGetMetaType is metadata generated or populated by the system for all persisted objects and cannot be updated directly by users.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaSystemObjectGetMetaType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTrendSentiment": {
        "type": "string",
        "description": "Trend sentiment\n\nIndicates trend sentiment is positive\nIndicates trend sentiment is negative.",
        "title": "Trend Sentiment",
        "enum": [
          "TREND_SENTIMENT_NONE",
          "TREND_SENTIMENT_POSITIVE",
          "TREND_SENTIMENT_NEGATIVE"
        ],
        "default": "TREND_SENTIMENT_NONE",
        "x-displayname": "Trend Sentiment.",
        "x-ves-proto-enum": "ves.io.schema.TrendSentiment",
        "x-f5xc-description-short": "Trend sentiment Indicates trend sentiment is positive Indicates trend sentiment is negative.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTrendSentiment",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"TREND_SENTIMENT_NONE\"",
          "example_yaml": "TREND_SENTIMENT_NONE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTrendValue": {
        "type": "object",
        "description": "Trend value contains trend value, trend sentiment and trend calculation description and window size.",
        "title": "Trend Value",
        "x-displayname": "Trend Value.",
        "x-ves-proto-message": "ves.io.schema.TrendValue",
        "properties": {
          "description": {
            "type": "string",
            "description": "Description of the method used to calculate trend.",
            "title": "Description",
            "x-displayname": "Description.",
            "x-ves-example": "Trend was calculated by comparing the avg of window size intervals of end-start Time and last window time interval.",
            "x-f5xc-example": "Trend was calculated by comparing the avg of window size intervals of end-start Time and last window time interval",
            "x-f5xc-description-short": "Description of the method used to calculate trend.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "previous_value": {
            "type": "string",
            "description": "Configuration parameter for previous value",
            "title": "Previous Value",
            "x-displayname": "Previous Value.",
            "x-ves-example": "200.00",
            "x-f5xc-example": "200.00",
            "x-f5xc-description-short": "Configuration parameter for previous value.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sentiment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTrendSentiment"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Configuration parameter for value",
            "title": "Value",
            "x-displayname": "Value",
            "x-ves-example": "-15",
            "x-f5xc-example": "-15",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Trend value contains trend value, trend sentiment and trend calculation description and window size.",
        "x-f5xc-description-medium": "Trend value contains trend value, trend sentiment and trend calculation description and window size.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTrendValue",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaUnitType": {
        "type": "string",
        "description": "UnitType is enumeration of units for scalar fields.",
        "title": "UnitType",
        "enum": [
          "UNIT_MILLISECONDS",
          "UNIT_SECONDS",
          "UNIT_MINUTES",
          "UNIT_HOURS",
          "UNIT_DAYS",
          "UNIT_BYTES",
          "UNIT_KBYTES",
          "UNIT_MBYTES",
          "UNIT_GBYTES",
          "UNIT_TBYTES",
          "UNIT_KIBIBYTES",
          "UNIT_MIBIBYTES",
          "UNIT_GIBIBYTES",
          "UNIT_TEBIBYTES",
          "UNIT_BITS_PER_SECOND",
          "UNIT_BYTES_PER_SECOND",
          "UNIT_KBITS_PER_SECOND",
          "UNIT_KBYTES_PER_SECOND",
          "UNIT_MBITS_PER_SECOND",
          "UNIT_MBYTES_PER_SECOND",
          "UNIT_CONNECTIONS_PER_SECOND",
          "UNIT_ERRORS_PER_SECOND",
          "UNIT_PACKETS_PER_SECOND",
          "UNIT_REQUESTS_PER_SECOND",
          "UNIT_PACKETS",
          "UNIT_PERCENTAGE",
          "UNIT_COUNT"
        ],
        "default": "UNIT_MILLISECONDS",
        "x-displayname": "Unit",
        "x-ves-proto-enum": "ves.io.schema.UnitType",
        "x-f5xc-description-short": "UnitType is enumeration of units for scalar fields.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaUnitType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"UNIT_MILLISECONDS\"",
          "example_yaml": "UNIT_MILLISECONDS\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaViewRefType": {
        "type": "object",
        "description": "ViewRefType represents a reference to a view.",
        "title": "ViewRefType",
        "x-displayname": "View Reference.",
        "x-ves-proto-message": "ves.io.schema.ViewRefType",
        "properties": {
          "kind": {
            "type": "string",
            "description": "Kind of the view object.",
            "title": "kind",
            "x-displayname": "Kind",
            "x-ves-example": "Http_proxy.",
            "x-f5xc-example": "http_proxy",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "name": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen name will hold the referred object's(e.g. Route's) name.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Contactus-route.",
            "x-f5xc-example": "contactus-route",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen namespace will hold the referred object's(e.g. Route's) namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "uid": {
            "type": "string",
            "description": "UID of the view object.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d543fad8e1f8.",
            "x-f5xc-example": "00000000-0000-4000-8000-d543fad8e1f8",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "ViewRefType represents a reference to a view.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaViewRefType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaapp_firewallMetricType": {
        "type": "string",
        "description": "List of metric types.",
        "title": "Metric Type",
        "enum": [
          "BOT_DETECTION",
          "ATTACKED_REQUESTS",
          "BLOCKED_REQUESTS",
          "TOTAL_REQUESTS"
        ],
        "default": "BOT_DETECTION",
        "x-displayname": "Metric Type.",
        "x-ves-proto-enum": "ves.io.schema.app_firewall.MetricType",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaapp_firewallMetricType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"BOT_DETECTION\"",
          "example_yaml": "BOT_DETECTION\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaapp_firewallMetricTypeData": {
        "type": "object",
        "description": "Metric Type Data contains key/value pair that uniquely identifies the group_by labels specified in the request.",
        "title": "Metric Type Data",
        "x-displayname": "Metric Type Data.",
        "x-ves-proto-message": "ves.io.schema.app_firewall.MetricTypeData",
        "properties": {
          "key": {
            "type": "object",
            "description": "Key contains the name/value pair.\n\"name\" is the label name defined in \"MetricLabel\"",
            "title": "Key",
            "x-displayname": "Key",
            "x-f5xc-example": "[REDACTED_PUBLIC_KEY]",
            "x-f5xc-description-short": "Key contains the name/value pair. \"name\" is the label name defined in \"MetricLabel\".",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 16,
            "minLength": 7,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "value": {
            "type": "array",
            "description": "List of metric values.",
            "title": "Value",
            "items": {
              "$ref": "#/components/schemas/schemaMetricValue"
            },
            "x-displayname": "Value",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 15,
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Metric Type Data contains key/value pair that uniquely identifies the group_by labels specified in the request.",
        "x-f5xc-description-medium": "Metric Type Data contains key/value pair that uniquely identifies the group_by labels specified in the request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaapp_firewallMetricTypeData",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityApiEndpoint": {
        "type": "object",
        "description": "API Endpoint identified by collapsed_url and method.",
        "title": "API Endpoint",
        "x-displayname": "API Endpoint.",
        "x-ves-proto-message": "ves.io.schema.app_security.ApiEndpoint",
        "properties": {
          "collapsed_url": {
            "type": "string",
            "description": "Collapsed URL is the path with identified DYN components.",
            "title": "Collapsed URL",
            "maxLength": 256,
            "x-displayname": "Collapsed URL.",
            "x-ves-example": "/abcd/DYN/xyz.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/abcd/DYN/xyz",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Collapsed URL is the path with identified DYN components.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method": {
            "type": "string",
            "description": "HTTP method.",
            "title": "method",
            "x-displayname": "Method",
            "x-f5xc-example": "GET",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "API Endpoint identified by collapsed_url and method.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityApiEndpoint",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedAPIEndpointProtectionRuleReq": {
        "type": "object",
        "description": "GET suggested API endpoint protection rule for a given path.",
        "title": "GetSuggestedAPIEndpointProtectionRuleReq",
        "x-displayname": "GET Suggested API endpoint protection Rule Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedAPIEndpointProtectionRuleReq",
        "properties": {
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this API endpoint protection rule applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this API endpoint protection rule applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "path": {
            "type": "string",
            "description": "Path to apply the API endpoint protection to.",
            "title": "Path",
            "maxLength": 1024,
            "x-displayname": "Request Path.",
            "x-ves-example": "/example",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/example",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-description-short": "Path to apply the API endpoint protection to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested API endpoint protection rule for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedAPIEndpointProtectionRuleReq",
          "required_fields": [
            "path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/example\"\n}",
          "example_yaml": "path: /example"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedAPIEndpointProtectionRuleRsp": {
        "type": "object",
        "description": "GET suggested API endpoint protection rule for a given path.",
        "title": "GetSuggestedAPIEndpointProtectionRuleRsp",
        "x-displayname": "GET Suggested API endpoint protection Rule Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedAPIEndpointProtectionRuleRsp",
        "properties": {
          "found_existing_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIEndpointProtectionRule__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested API endpoint protection rule for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedAPIEndpointProtectionRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedBlockClientRuleReq": {
        "type": "object",
        "description": "GET suggested blocking SimpleClientSrcRule for a given IP/ASN.",
        "title": "GetSuggestedBlockClientRuleReq",
        "x-displayname": "GET Suggested Block Client Rule Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedBlockClientRuleReq",
        "properties": {
          "as_description": {
            "type": "string",
            "description": "AS description.",
            "title": "Description",
            "maxLength": 256,
            "x-displayname": "AS Description.",
            "x-ves-example": "As-description.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "as-description",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "as_number": {
            "type": "integer",
            "description": "RFC 6793 defined 4-byte AS number.",
            "title": "as number",
            "format": "int64",
            "x-displayname": "AS Number",
            "x-ves-example": "4683",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-example": "4683",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 401308,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "ip_prefix": {
            "type": "string",
            "description": "IP prefix string.",
            "title": "ip prefix",
            "x-displayname": "IP Prefix",
            "x-ves-example": "192.0.2.0/24.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.ip_prefix": "true"
            },
            "x-f5xc-example": "192.0.2.0/24",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.ip_prefix": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "cidr",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this WAF exclusion will be applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this WAF exclusion will be applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "user_id": {
            "type": "string",
            "description": "User ID of blocked client.",
            "title": "user id",
            "maxLength": 256,
            "x-displayname": "User ID",
            "x-ves-example": "Abc",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "abc",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "GET suggested blocking SimpleClientSrcRule for a given IP/ASN.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedBlockClientRuleReq",
          "required_fields": [
            "as_number",
            "ip_prefix"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"as_number\": 0,\n  \"ip_prefix\": \"192.0.2.0/24\"\n}",
          "example_yaml": "as_number: 0\nip_prefix: 192.0.2.0/24"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedBlockClientRuleRsp": {
        "type": "object",
        "description": "GET suggested blocking SimpleClientSrcRule for a given IP/ASN.",
        "title": "GetSuggestedBlockClientRuleRsp",
        "x-displayname": "GET Suggested Block Client Rule Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedBlockClientRuleRsp",
        "properties": {
          "found_existing_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this WAF exclusion will be applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this WAF exclusion will be applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested blocking SimpleClientSrcRule for a given IP/ASN.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedBlockClientRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedDDoSMitigtionRuleReq": {
        "type": "object",
        "description": "GET suggested blocking DDoSMitigtionRule for a given IP/ASN/Country/TLS.",
        "title": "GetSuggestedDDoSMitigtionRuleReq",
        "x-displayname": "GET Suggested DDoS Mitigtion Rule Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedDDoSMitigtionRuleReq",
        "properties": {
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "country_list": {
            "type": "array",
            "description": "Sources that are located in one of the countries in the given list.",
            "title": "country_list",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyCountryCode"
            },
            "x-displayname": "Country List.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Sources that are located in one of the countries in the given list.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ja4_tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyJA4TlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ja4 tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Load balancer for which this WAF exclusion will be applied.",
            "title": "Name",
            "x-displayname": "Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "Load balancer for which this WAF exclusion will be applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested blocking DDoSMitigtionRule for a given IP/ASN/Country/TLS.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedDDoSMitigtionRuleReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedDDoSMitigtionRuleRsp": {
        "type": "object",
        "description": "GET suggested DDoS Mitigtion Rule for a given IP/ASN/Country/TLS.",
        "title": "GetSuggestedDDoSMitigtionRuleRsp",
        "x-displayname": "GET Suggested DDoS Mitigtion Rule Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedDDoSMitigtionRuleRsp",
        "properties": {
          "found_existing_mitigation_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mitigation_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityDDoSMitigationRule__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mitigation_rule_name": {
            "type": "string",
            "description": "HTTP load balancer for which this DDoS Mitigation Rule will be applied.",
            "title": "Name",
            "x-displayname": "DDoS Mitigation Rule Name.",
            "x-ves-example": "VES-I/O-DDoS-mitigation-rule.",
            "x-f5xc-example": "ves-io-ddos-mitigation-rule",
            "x-f5xc-description-short": "HTTP load balancer for which this DDoS Mitigation Rule will be applied.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested DDoS Mitigtion Rule for a given IP/ASN/Country/TLS.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedDDoSMitigtionRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedOasValidationRuleReq": {
        "type": "object",
        "description": "GET suggested Open API specification validation for a given path.",
        "title": "GetSuggestedOasValidationRuleReq",
        "x-displayname": "GET Suggested Open API specification validation Rule Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedOasValidationRuleReq",
        "properties": {
          "api_groups": {
            "type": "array",
            "description": "List of API Groups the API Endpoint is a member of.",
            "title": "API Groups membership",
            "items": {
              "type": "string"
            },
            "x-displayname": "API Groups membership.",
            "x-f5xc-example": "[\"group-1\", \"group-2\"]",
            "x-f5xc-description-short": "List of API Groups the API Endpoint is a member of.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this Open API specification validation rule applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this Open API specification validation rule applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "path": {
            "type": "string",
            "description": "Path to apply the Open API specification validation to.",
            "title": "Path",
            "maxLength": 1024,
            "x-displayname": "Request Path.",
            "x-ves-example": "/example",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/example",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-description-short": "Path to apply the Open API specification validation to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested Open API specification validation for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedOasValidationRuleReq",
          "required_fields": [
            "path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/example\"\n}",
          "example_yaml": "path: /example"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedOasValidationRuleRsp": {
        "type": "object",
        "description": "GET suggested Open API specification validation for a given path.",
        "title": "GetSuggestedOasValidationRuleRsp",
        "x-displayname": "GET Suggested Open API specification validation Rule Response.",
        "x-ves-oneof-field-api_validation_choice": "[\"all_endpoints_oas_validation\",\"custom_oas_validation\"]",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedOasValidationRuleRsp",
        "properties": {
          "all_endpoints_oas_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationAllSpecEndpointsSettings__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_oas_validation"
            ]
          },
          "custom_oas_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationRule__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom oas validation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_endpoints_oas_validation"
            ]
          },
          "found_existing_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested Open API specification validation for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedOasValidationRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedRateLimitRuleReq": {
        "type": "object",
        "description": "GET suggested rate limit rule for a given path.",
        "title": "GetSuggestedRateLimitRuleReq",
        "x-displayname": "GET Suggested Rate Limit Rule Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedRateLimitRuleReq",
        "properties": {
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this rate limit rule applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this rate limit rule applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "path": {
            "type": "string",
            "description": "Path to apply the rate limit to.",
            "title": "Path",
            "maxLength": 1024,
            "x-displayname": "Request Path.",
            "x-ves-example": "/example",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/example",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested rate limit rule for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedRateLimitRuleReq",
          "required_fields": [
            "path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/example\"\n}",
          "example_yaml": "path: /example"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedRateLimitRuleRsp": {
        "type": "object",
        "description": "GET suggested rate limit rule for a given path.",
        "title": "GetSuggestedRateLimitRuleRsp",
        "x-displayname": "GET Suggested Rate Limit Rule Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedRateLimitRuleRsp",
        "properties": {
          "found_existing_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointRule__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested rate limit rule for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedRateLimitRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedSensitiveDataRuleReq": {
        "type": "object",
        "description": "GET suggested sensitive data rule for a given path.",
        "title": "GetSuggestedSensitiveDataRuleReq",
        "x-displayname": "GET Suggested Sensitive Data Rule Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedSensitiveDataRuleReq",
        "properties": {
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this sensitive data rule applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this sensitive data rule applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "path": {
            "type": "string",
            "description": "Path to apply the sensitive data to.",
            "title": "Path",
            "maxLength": 1024,
            "x-displayname": "Request Path.",
            "x-ves-example": "/example",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/example",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested sensitive data rule for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedSensitiveDataRuleReq",
          "required_fields": [
            "path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/example\"\n}",
          "example_yaml": "path: /example"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedSensitiveDataRuleRsp": {
        "type": "object",
        "description": "GET suggested sensitive data rule for a given path.",
        "title": "GetSuggestedSensitiveDataRuleRsp",
        "x-displayname": "GET Suggested Sensitive Data Rule Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedSensitiveDataRuleRsp",
        "properties": {
          "found_existing_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerSensitiveDataTypes__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested sensitive data rule for a given path.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedSensitiveDataRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedTrustClientRuleReq": {
        "type": "object",
        "description": "GET suggested blocking SimpleClientSrcRule for a given IP/ASN.",
        "title": "GetSuggestedTrustClientRuleReq",
        "x-displayname": "GET Suggested Trust Client Rule Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedTrustClientRuleReq",
        "properties": {
          "as_description": {
            "type": "string",
            "description": "AS description.",
            "title": "Description",
            "maxLength": 256,
            "x-displayname": "AS Description.",
            "x-ves-example": "As-description.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "as-description",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "as_number": {
            "type": "integer",
            "description": "RFC 6793 defined 4-byte AS number.",
            "title": "as number",
            "format": "int64",
            "x-displayname": "AS Number",
            "x-ves-example": "4683",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-example": "4683",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 401308,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "ip_prefix": {
            "type": "string",
            "description": "IP prefix string.",
            "title": "ip prefix",
            "x-displayname": "IP Prefix",
            "x-ves-example": "192.0.2.0/24.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.ip_prefix": "true"
            },
            "x-f5xc-example": "192.0.2.0/24",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.ip_prefix": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "cidr",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "ip_reputation": {
            "type": "boolean",
            "description": "Indicates whether the security event is IP reputation.",
            "title": "IP Reputation Security Event",
            "format": "boolean",
            "x-displayname": "IP Reputation Security Event.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Indicates whether the security event is IP reputation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this client blocking rule will be applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this client blocking rule will be applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "sec_event_name": {
            "type": "string",
            "description": "The name of Security Event.",
            "title": "Security Event Name",
            "x-displayname": "Security Event Name.",
            "x-ves-example": "Malicious User Mitigation.",
            "x-f5xc-example": "Malicious User Mitigation",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sec_event_types": {
            "type": "array",
            "description": "List of Security Event types that should stop being generated for this client.",
            "title": "Security Event Types",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/app_securitySecEventType"
            },
            "x-displayname": "Security Event Types.",
            "x-ves-example": "[WAF_SEC_EVENT]",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[WAF_SEC_EVENT]",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Security Event types that should stop being generated for this client.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "threat_mesh": {
            "type": "boolean",
            "description": "Indicates whether the security event is threat mesh.",
            "title": "Threat Mesh Security Event",
            "format": "boolean",
            "x-displayname": "Threat Mesh Security Event.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Indicates whether the security event is threat mesh.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "user_id": {
            "type": "string",
            "description": "User ID of trusted client.",
            "title": "user id",
            "maxLength": 256,
            "x-displayname": "User ID",
            "x-ves-example": "Abc",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "abc",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "GET suggested blocking SimpleClientSrcRule for a given IP/ASN.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedTrustClientRuleReq",
          "required_fields": [
            "as_number",
            "ip_prefix"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"as_number\": 0,\n  \"ip_prefix\": \"192.0.2.0/24\"\n}",
          "example_yaml": "as_number: 0\nip_prefix: 192.0.2.0/24"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedTrustClientRuleRsp": {
        "type": "object",
        "description": "GET suggested SimpleClientSrcRule to trust a given IP/ASN.",
        "title": "GetSuggestedTrustClientRuleRsp",
        "x-displayname": "GET Suggested Trust Client Rule Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedTrustClientRuleRsp",
        "properties": {
          "found_existing_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this client rule will be applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this client rule will be applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested SimpleClientSrcRule to trust a given IP/ASN.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedTrustClientRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedWAFExclusionRuleReq": {
        "type": "object",
        "description": "GET suggested service policy rule to set up WAF rule exclusion for a given WAF security event.",
        "title": "GetSuggestedWAFExclusionRuleReq",
        "x-displayname": "GET Suggested WAF Exclusion Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedWAFExclusionRuleReq",
        "properties": {
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securityApiEndpoint"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domain": {
            "type": "string",
            "description": "Domain",
            "title": "Domain",
            "maxLength": 256,
            "x-displayname": "Domain",
            "x-ves-example": "juiceshop.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "juiceshop.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "exclude_bot_names": {
            "type": "array",
            "description": "Bot name contexts to be excluded for this request.",
            "title": "Exclude Bot Name Contexts",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyBotNameContext"
            },
            "x-displayname": "Exclude Bot Name Contexts.",
            "x-ves-example": "Hydra, Nikto.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "Hydra, Nikto",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Bot name contexts to be excluded for this request.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exclude_signature_contexts": {
            "type": "array",
            "description": "App Firewall signature contexts to be excluded for this request.",
            "title": "Exclude Signature Contexts",
            "maxItems": 1024,
            "items": {
              "$ref": "#/components/schemas/policyAppFirewallSignatureContext"
            },
            "x-displayname": "Exclude App Firewall Signature Contexts.",
            "x-ves-example": "[[10000001, 30000000]]",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1024",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[[10000001, 30000000]]",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1024",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "App Firewall signature contexts to be excluded for this request.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1024,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exclude_violation_contexts": {
            "type": "array",
            "description": "App Firewall violation contexts to be excluded for this request.",
            "title": "Exclude Violation Contexts",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyAppFirewallViolationContext"
            },
            "x-displayname": "Exclude App Firewall Violation Contexts.",
            "x-ves-example": "[[VIOL_MANDATORY_HEADER, VIOL_REQUEST_MAX_LENGTH]]",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[[VIOL_MANDATORY_HEADER, VIOL_REQUEST_MAX_LENGTH]]",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "App Firewall violation contexts to be excluded for this request.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this WAF exclusion will be applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this WAF exclusion will be applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "req_path": {
            "type": "string",
            "description": "Request URL path.",
            "title": "Request Path",
            "maxLength": 256,
            "x-displayname": "Request Path.",
            "x-ves-example": "/abcd/2452422c/xyz.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/abcd/2452422c/xyz",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "route_uuid": {
            "type": "string",
            "description": "Unique identifier for the request route.",
            "title": "Route UUID",
            "x-displayname": "Route UUID.",
            "x-ves-example": "00000000-0000-4000-8000-25a697151bfa.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.pattern": "^$|^[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}$"
            },
            "x-f5xc-example": "00000000-0000-4000-8000-25a697151bfa",
            "x-validation-rules": {
              "ves.io.schema.rules.string.pattern": "^$|^[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}$"
            },
            "x-f5xc-description-short": "Unique identifier for the request route.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "pattern": "^$|^[a-fA-F0-9]{8}-([a-fA-F0-9]{4}-){3}[a-fA-F0-9]{12}$",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested service policy rule to set up WAF rule exclusion for a given WAF security event.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedWAFExclusionRuleReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityGetSuggestedWAFExclusionRuleRsp": {
        "type": "object",
        "description": "GET suggested service policy rule to set up WAF rule exclusion for a given WAF security event.",
        "title": "GetSuggestedWAFExclusionRuleRsp",
        "x-displayname": "GET Suggested WAF Exclusion Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.GetSuggestedWAFExclusionRuleRsp",
        "properties": {
          "found_existing_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "HTTP load balancer for which this WAF exclusion will be applied.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "x-f5xc-description-short": "HTTP load balancer for which this WAF exclusion will be applied.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "waf_exclusion_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "waf_exclusion_policy",
                "field_path": "waf_exclusion_policy",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "waf_exclusion_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policySimpleWafExclusionRule__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET suggested service policy rule to set up WAF rule exclusion for a given WAF security event.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityGetSuggestedWAFExclusionRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityLoadbalancerData": {
        "type": "object",
        "description": "List of virtual hosts in all the namespaces matching filter provided in the request.",
        "title": "LoadbalancerData",
        "x-displayname": "Load Balancer data.",
        "x-ves-proto-message": "ves.io.schema.app_security.LoadbalancerData",
        "properties": {
          "name": {
            "type": "string",
            "description": "HTTP load balancer name.",
            "title": "Name",
            "x-displayname": "HTTP Load Balancer Name.",
            "x-ves-example": "VES-I/O-frontend.",
            "x-f5xc-example": "ves-io-frontend",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "request_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securityRequestData"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "security_events_data": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySecurityEventsData"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of virtual hosts in all the namespaces matching filter provided in the request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityLoadbalancerData",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityRequestData": {
        "type": "object",
        "description": "Request Data.",
        "title": "RequestData",
        "x-displayname": "Request Data.",
        "x-ves-proto-message": "ves.io.schema.app_security.RequestData",
        "properties": {
          "count": {
            "type": "string",
            "description": "The number of requests matching the filter for virtual host in the given namespace.",
            "format": "uint64",
            "x-displayname": "Count",
            "x-f5xc-example": "15",
            "x-f5xc-description-short": "The number of requests matching the filter for virtual host in the given namespace.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_time": {
            "type": "string",
            "description": "Maximum time at which request ID was found.",
            "title": "Maximum Time",
            "format": "date-time",
            "x-displayname": "Maximum time.",
            "x-ves-example": "01-01-1970T00:00:00Z.",
            "x-f5xc-example": "01-01-1970T00:00:00Z",
            "x-f5xc-description-short": "Maximum time at which request ID was found.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "min_time": {
            "type": "string",
            "description": "Minimum time at which the request ID was found.",
            "title": "Minimum Time",
            "format": "date-time",
            "x-displayname": "Minimum time.",
            "x-ves-example": "01-01-1970T00:00:00Z.",
            "x-f5xc-example": "01-01-1970T00:00:00Z",
            "x-f5xc-description-short": "Minimum time at which the request ID was found.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityRequestData",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySearchAfterSortValues": {
        "type": "object",
        "description": "These are timestamp and doc_id values returned by elastic search in the search request.\nClient is expected to set these values in a subsequent request to GET the next page of results.",
        "title": "SearchAfterSortValues",
        "x-displayname": "Search After Sort Values.",
        "x-ves-proto-message": "ves.io.schema.app_security.SearchAfterSortValues",
        "properties": {
          "last_doc_id": {
            "type": "string",
            "description": "This is a unique UUID generated by elastic search.",
            "title": "last_doc_id",
            "x-displayname": "Last Doc ID.",
            "x-ves-example": "-8881051689166072872.",
            "x-f5xc-example": "-8881051689166072872",
            "x-f5xc-description-short": "Unique UUID generated by elastic search.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "last_timestamp": {
            "type": "number",
            "description": "Configuration parameter for last timestamp",
            "title": "last timestamp",
            "format": "double",
            "x-displayname": "Last Timestamp.",
            "x-f5xc-example": "1745695692759",
            "x-f5xc-description-short": "Configuration parameter for last timestamp.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "These are timestamp and doc_id values returned by elastic search in the search request.",
        "x-f5xc-description-medium": "These are timestamp and doc_id values returned by elastic search in the search request. Client is expected to set these values in a subsequent request to GET the next page of results.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySearchAfterSortValues",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySearchFilter": {
        "type": "object",
        "description": "Metric label filter can be specified to query specific metrics based on label match.",
        "title": "Search Filter",
        "x-displayname": "Search Filter.",
        "x-ves-proto-message": "ves.io.schema.app_security.SearchFilter",
        "properties": {
          "label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchLabel"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "op": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchLabelOperator"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "array",
            "description": "Value to be compared with.",
            "title": "Value",
            "maxItems": 5,
            "items": {
              "type": "string"
            },
            "x-displayname": "Value",
            "x-ves-example": "[\"blogging-app-namespace-1\", \"namespace-2\"]",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "5"
            },
            "x-f5xc-example": "\"[\"blogging-app-namespace-1\", \"namespace-2\"]\"",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "5"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 5,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 15,
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Metric label filter can be specified to query specific metrics based on label match.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySearchFilter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySearchLabel": {
        "type": "string",
        "description": "List of Virtual Hosts will be returned matching the following labels.",
        "title": "Search Label for VH list API",
        "enum": [
          "REQUEST_ID",
          "SOURCE_IP",
          "DOMAIN_NAME"
        ],
        "default": "REQUEST_ID",
        "x-displayname": "Search Label for VH List API.",
        "x-ves-proto-enum": "ves.io.schema.app_security.SearchLabel",
        "x-f5xc-description-short": "List of Virtual Hosts will be returned matching the following labels.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySearchLabel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"REQUEST_ID\"",
          "example_yaml": "REQUEST_ID\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySearchLabelOperator": {
        "type": "string",
        "description": "Search Label Operator\nfoo\", \"bar\"]\"",
        "title": "Search Label Operator",
        "enum": [
          "IN",
          "NOT_IN"
        ],
        "default": "IN",
        "x-displayname": "Search Label Operator.",
        "x-ves-proto-enum": "ves.io.schema.app_security.SearchLabelOperator",
        "x-f5xc-example": "field: [",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySearchLabelOperator",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"field: [\"",
          "example_yaml": "'field: ['"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySearchLoadBalancersRequest": {
        "type": "object",
        "description": "GET a list of virtual hosts in all the namespaces matching filter provided in the request.\nThe filter can be a) Request ID b) Source IP.",
        "title": "SearchLoadBalancersRequest",
        "x-displayname": "Search Load Balancers Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SearchLoadBalancersRequest",
        "properties": {
          "label_filter": {
            "type": "array",
            "description": "List of label filter expressions of the form \"label\" `Op` \"value\".\nResponse will only contain data that matches all the conditions specified in the `label_filter`.\nOne or more of the following labels can be specified in the label_filter.\n`REQUEST_ID`, `SOURCE_IP``.",
            "title": "Label Filter",
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/app_securitySearchFilter"
            },
            "x-displayname": "Label Filter.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "5"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "5"
            },
            "x-f5xc-description-short": "List of label filter expressions of the form \"label\" \"value\". Response will only contain data that matches all the conditions specified in the .",
            "x-f5xc-description-medium": "List of label filter expressions of the form \"label\" \"value\". Response will only contain data that matches all the conditions specified in the . One or more of the following labels can be specified in the label_filter. , `.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 5,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the App type for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the App type for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "GET a list of virtual hosts in all the namespaces matching filter provided in the request.",
        "x-f5xc-description-medium": "GET a list of virtual hosts in all the namespaces matching filter provided in the request. The filter can be a) Request ID b) Source IP.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySearchLoadBalancersRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySearchLoadBalancersResponse": {
        "type": "object",
        "description": "List of virtual hosts in all the namespaces matching filter provided in the request.",
        "title": "SearchLoadBalancersResponse",
        "x-displayname": "Search Load Balancers Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SearchLoadBalancersResponse",
        "properties": {
          "loadbalancers": {
            "type": "array",
            "description": "HTTP load balancer list for which the SearchFilter is applied.",
            "title": "Loadbalancers",
            "items": {
              "$ref": "#/components/schemas/app_securityLoadbalancerData"
            },
            "x-displayname": "HTTP Load Balancer List.",
            "x-ves-example": "[VES-I/O-frontend\", \"ns1\" , \"1\", \"0\"]",
            "x-f5xc-example": "\"[ves-io-frontend\", \"ns1\" , \"1\", \"0\"]\"",
            "x-f5xc-description-short": "HTTP load balancer list for which the SearchFilter is applied.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of virtual hosts in all the namespaces matching filter provided in the request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySearchLoadBalancersResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecEventType": {
        "type": "string",
        "description": "Security event can be one of the following types.",
        "title": "Security Event Type",
        "enum": [
          "WAF_SEC_EVENT",
          "L7_POLICY_SEC_EVENT",
          "JS_CHALLENGE_SEC_EVENT",
          "CAPTCHA_CHALLENGE_SEC_EVENT",
          "MALICIOUS_USER_SEC_EVENT",
          "SVC_POLICY_SEC_EVENT",
          "BOT_DEFENSE_SEC_EVENT",
          "API_SEC_EVENT",
          "DDOS_SEC_EVENT",
          "DOS_SEC_EVENT"
        ],
        "default": "WAF_SEC_EVENT",
        "x-displayname": "Security Event Type.",
        "x-ves-proto-enum": "ves.io.schema.app_security.SecEventType",
        "x-f5xc-description-short": "Security event can be one of the following types.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecEventType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"WAF_SEC_EVENT\"",
          "example_yaml": "WAF_SEC_EVENT\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsAggregationRequest": {
        "type": "object",
        "description": "Request to GET only aggregation data for security events.",
        "title": "Security Events Aggregation Request",
        "x-displayname": "Security Events Aggregation Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsAggregationRequest",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.\nThe aggregations are key'ed by user-defined aggregation name. The response will be key'ed with the same name.\nOptional.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security events response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregations are key'ed by...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "end_time": {
            "type": "string",
            "description": "Fetch security events whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "end time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security events whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated...",
            "x-f5xc-description-medium": "Fetch security events whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Fetch security events for a given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch security events for a given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query": {
            "type": "string",
            "description": "Query is used to specify the list of matchers\nsyntax for query := {[<matcher>]}\n<matcher> := <field_name><operator>\"<value>\"\n<field_name> := string\nOne or more of these fields in the security event may be specified in the query.\nVh_name - name of the virtual host\nsrc_site - source site\ncity - name of the city\ncountry - country code\n<value> := string\n<operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\n=~ : regex match\n!~ : not regex match\nWhen more than one matcher is specified in the query, then security events matching ALL the matchers will be returned in the response.\nExample: query={country=\"United States\", city=\"California\"} will return all security events originating from California, United States.\n\nOptional: If not specified, all the security events matching the given tenant and namespace will be returned in the response.",
            "title": "query",
            "x-displayname": "Query",
            "x-ves-example": "Query={app_type=\"blogging_app\"}",
            "x-f5xc-example": "\"query={app_type=\"blogging_app\"}\"",
            "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> :=...",
            "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> := string One or more of these fields in the security event may be specified in the query. Vh_name - name of the virtual host src_site - source site city ...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Fetch security events whose timestamp >= start_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security events whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be...",
            "x-f5xc-description-medium": "Fetch security events whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET only aggregation data for security events.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsAggregationRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsAggregationResponse": {
        "type": "object",
        "description": "Response message for SecurityEventsAggregationRequest.",
        "title": "Security Events Aggregation Response",
        "x-displayname": "Security Events Aggregation Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsAggregationResponse",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.\nThe aggregation data is key'ed with the aggregation name specified in the request.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security events response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregation data is key'ed with the...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "total_hits": {
            "type": "string",
            "description": "Total number of security events that matched the query.",
            "title": "total hits",
            "format": "uint64",
            "x-displayname": "Total Hits.",
            "x-ves-example": "0",
            "x-f5xc-example": "0",
            "x-f5xc-description-short": "Total number of security events that matched the query.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response message for SecurityEventsAggregationRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsAggregationResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsCountRequest": {
        "type": "object",
        "description": "Request to GET number of security events for a given namespace.",
        "title": "SecurityEventsCountRequest",
        "x-displayname": "Security Events Count Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsCountRequest",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "End time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "End time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "End time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "group_by": {
            "type": "array",
            "description": "Aggregate data by one or more labels listed here.\n`NAMESPACE`, `VIRTUAL_HOST`, `SRC_SITE`, `SRC_INSTANCE`, `SEC_EVENT_TYPE`.\n\nOptional: If not specified, then the security events are aggregated/grouped by `VIRTUAL_HOST`, `SEC_EVENT_TYPE`.",
            "title": "Group by",
            "items": {
              "$ref": "#/components/schemas/metricsSecurityMetricLabel"
            },
            "x-displayname": "Group By",
            "x-f5xc-description-short": "Aggregate data by one or more labels listed here. , , , , . Optional: If not specified, then the security events are aggregated/grouped by , .",
            "x-f5xc-description-medium": "Aggregate data by one or more labels listed here. , , , , . Optional: If not specified, then the security events are aggregated/grouped by , .",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_filter": {
            "type": "array",
            "description": "List of label filter expressions of the form \"label\" `Op` \"value\".\nResponse will only contain data that matches all the conditions specified in the `label_filter`.\nOne or more of the following labels can be specified in the label_filter.\n`VIRTUAL_HOST`, `SRC_SITE`, `SRC_INSTANCE`, `SEC_EVENT_TYPE`.\n\nOptional: If not specified, then the metrics will be filtered only based on the `namespace` in the request.",
            "title": "Label Filter",
            "items": {
              "$ref": "#/components/schemas/metricsSecurityMetricLabelFilter"
            },
            "x-displayname": "Label Filter.",
            "x-f5xc-description-short": "List of label filter expressions of the form \"label\" \"value\". Response will only contain data that matches all the conditions specified in the .",
            "x-f5xc-description-medium": "List of label filter expressions of the form \"label\" \"value\". Response will only contain data that matches all the conditions specified in the . One or more of the following labels can be specified in the label_filter. , , , .",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace is used to scope the security events for the given namespace.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Namespace is used to scope the security events for the given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "start_time": {
            "type": "string",
            "description": "Start time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "Start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Start time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "Start time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.\nThe timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nOptional: If not specified, then step size is evaluated to <end_time - start_time>",
            "title": "Step",
            "x-displayname": "Step",
            "x-ves-example": "15m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-example": "15m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-description-short": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.",
            "x-f5xc-description-medium": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response. The timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET number of security events for a given namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsCountRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsCountResponse": {
        "type": "object",
        "description": "Number of security events for each unique combination of group_by labels in the SecurityEventsCountRequest.",
        "title": "SecurityEventsCountResponse",
        "x-displayname": "Security Events Count Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsCountResponse",
        "properties": {
          "data": {
            "type": "array",
            "description": "List of security events counter data.",
            "title": "Security events counter data",
            "items": {
              "$ref": "#/components/schemas/metricsSecurityEventsCounter"
            },
            "x-displayname": "Security events counter data.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "title": "step",
            "x-displayname": "Step",
            "x-ves-example": "30m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "30m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.",
            "x-f5xc-description-medium": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Number of security events for each unique combination of group_by labels in the SecurityEventsCountRequest.",
        "x-f5xc-description-medium": "Number of security events for each unique combination of group_by labels in the SecurityEventsCountRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsCountResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsData": {
        "type": "object",
        "description": "Security events data.",
        "title": "SecurityEventsData",
        "x-displayname": "Security Events Data.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsData",
        "properties": {
          "count": {
            "type": "string",
            "description": "The number of security events for virtual host in the given namespace.",
            "format": "uint64",
            "x-displayname": "Count",
            "x-f5xc-example": "15",
            "x-f5xc-description-short": "The number of security events for virtual host in the given namespace.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_time": {
            "type": "string",
            "description": "Maximum start time at which security event was found.",
            "title": "Maximum Time",
            "format": "date-time",
            "x-displayname": "Maximum time.",
            "x-ves-example": "01-01-1970T00:00:00Z.",
            "x-f5xc-example": "01-01-1970T00:00:00Z",
            "x-f5xc-description-short": "Maximum start time at which security event was found.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "min_time": {
            "type": "string",
            "description": "Minimum time at which the security event was found.",
            "title": "Minimum Time",
            "format": "date-time",
            "x-displayname": "Minimum time.",
            "x-ves-example": "01-01-1970T00:00:00Z.",
            "x-f5xc-example": "01-01-1970T00:00:00Z",
            "x-f5xc-description-short": "Minimum time at which the security event was found.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsData",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsRequest": {
        "type": "object",
        "description": "Request to fetch security events.",
        "title": "Security Events Request",
        "x-displayname": "Security Events Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsRequest",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.\nThe aggregations are key'ed by user-defined aggregation name. The response will be key'ed with the same name.\nOptional.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security events response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregations are key'ed by...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "end_time": {
            "type": "string",
            "description": "Fetch security events whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "end time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security events whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated...",
            "x-f5xc-description-medium": "Fetch security events whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "limit": {
            "type": "integer",
            "description": "Limits the number of security events returned in the response\nOptional: If not specified, first or last 500 security events that matches the query (depending on the sort order) will be returned in the response.\nThe maximum value for limit is 500.",
            "title": "limit",
            "format": "int32",
            "x-displayname": "Limit",
            "x-ves-example": "100",
            "x-f5xc-example": "100",
            "x-f5xc-description-short": "Limits the number of security events returned in the response Optional: If not specified, first or last 500 security events that matches the query...",
            "x-f5xc-description-medium": "Limits the number of security events returned in the response Optional: If not specified, first or last 500 security events that matches the query (depending on the sort order) will be returned in the response. The maximum value for limit is 500.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "policy",
              "minimum": 1,
              "maximum": 1000000,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Fetch security events for a given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch security events for a given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query": {
            "type": "string",
            "description": "Query is used to specify the list of matchers\nsyntax for query := {[<matcher>]}\n<matcher> := <field_name><operator>\"<value>\"\n<field_name> := string\nOne or more of these fields in the security event may be specified in the query.\nVh_name - name of the virtual host\nsrc_site - source site\ncity - name of the city\ncountry - country code\n<value> := string\n<operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\n=~ : regex match\n!~ : not regex match\nWhen more than one matcher is specified in the query, then security events matching ALL the matchers will be returned in the response.\nExample: query={country=\"United States\", city=\"California\"} will return all security events originating from California, United States.\n\nOptional: If not specified, all the security events matching the given tenant and namespace will be returned in the response.",
            "title": "query",
            "x-displayname": "Query",
            "x-ves-example": "Query={app_type=\"blogging_app\"}",
            "x-f5xc-example": "\"query={app_type=\"blogging_app\"}\"",
            "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> :=...",
            "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> := string One or more of these fields in the security event may be specified in the query. Vh_name - name of the virtual host src_site - source site city ...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "scroll": {
            "type": "boolean",
            "description": "Scroll is used to retrieve large number of security events (or all security events) that matches the query.\nIf scroll is set to true, the scroll_id in the response can be used in the scroll API to fetch the next\nbatch of security events until there are no more security events left to return. The number of messages in each batch is determined\nby the limit field.\nNote: Scroll is used for processing large amount of data and therefore is not intended for real time user request.\nOptional: default is false.",
            "title": "scroll",
            "format": "boolean",
            "x-displayname": "Scroll",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Scroll is used to retrieve large number of security events (or all security events) that matches the query.",
            "x-f5xc-description-medium": "Scroll is used to retrieve large number of security events (or all security events) that matches the query. If scroll is set to true, the scroll_id in the response can be used in the scroll API to fetch the next batch of security events until there are no more security events left to return. The...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "search_after": {
            "type": "boolean",
            "description": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query.\nIf search_after is set to true, the sort_values in the response can be used in the API to fetch the next\nbatch of logs. The number of messages in each batch is determined by the limit field.\nNote: Search After is used for processing large amount of data and therefore is not intended for real time user request.\nOptional: default is false.",
            "title": "search after",
            "format": "boolean",
            "x-displayname": "Search After.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query.",
            "x-f5xc-description-medium": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query. If search_after is set to true, the sort_values in the response can be used in the API to fetch the next batch of logs. The number of messages in each batch is determined by the limit field.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSortOrder"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort_by": {
            "type": "string",
            "description": "Optional: default is sort by last_event_time.",
            "title": "sort by",
            "x-displayname": "Sort By",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Optional: default is sort by last_event_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort_values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchAfterSortValues"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Fetch security events whose timestamp >= start_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security events whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be...",
            "x-f5xc-description-medium": "Fetch security events whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsResponse": {
        "type": "object",
        "description": "Response message for SecurityEventsRequest/SecurityEventsScrollRequest.",
        "title": "Security Events Response",
        "x-displayname": "Security Events Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsResponse",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security events response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "events": {
            "type": "array",
            "description": "List of security events that matched the query. Contains no more than 500 messages.",
            "title": "events",
            "items": {
              "type": "string"
            },
            "x-displayname": "Events",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "List of security events that matched the query. Contains no more than 500 messages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "last_sort_values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchAfterSortValues"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "scroll_id": {
            "type": "string",
            "description": "Long Base-64 encoded string which can be used to retrieve the next batch of security events using the scroll request.\nEmpty scroll_id indicates no more messages to scroll (EOF).\nNote: scroll_id is valid only for 2 minutes. I.e., If one intend to retrieve next batch of the result, then the\nscroll request should be sent within 2 minutes upon receiving the SecurityEventsResponse.",
            "title": "scroll id",
            "x-displayname": "Scroll ID",
            "x-ves-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
            "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve the next batch of security events using the scroll request.",
            "x-f5xc-description-medium": "Long Base-64 encoded string which can be used to retrieve the next batch of security events using the scroll request. Empty scroll_id indicates no more messages to scroll (EOF).",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "total_hits": {
            "type": "string",
            "description": "Total number of security events that matched the query.",
            "title": "total hits",
            "format": "uint64",
            "x-displayname": "Total Hits.",
            "x-ves-example": "0",
            "x-f5xc-example": "0",
            "x-f5xc-description-short": "Total number of security events that matched the query.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response message for SecurityEventsRequest/SecurityEventsScrollRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityEventsScrollRequest": {
        "type": "object",
        "description": "Scroll request is used to fetch large number of security events in multiple batches with each SecurityEventsResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all WAF security events, one can use the\nSecurityEventScrollRequest. Use the scroll_id returned in the SecurityEventsResponse to fetch the next batch of security events and\none can continue this process till the scroll_id returned is \"\" which indicates no more messages to scroll.",
        "title": "Security Events Scroll Request",
        "x-displayname": "Security Events Scroll Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityEventsScrollRequest",
        "properties": {
          "namespace": {
            "type": "string",
            "description": "Fetch the WAF security events scoped by namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch the WAF security events scoped by namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "scroll_id": {
            "type": "string",
            "description": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "title": "scroll id",
            "x-displayname": "Scroll ID",
            "x-ves-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
            "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "Scroll request is used to fetch large number of security events in multiple batches with each SecurityEventsResponse containing no more than 500...",
        "x-f5xc-description-medium": "Scroll request is used to fetch large number of security events in multiple batches with each SecurityEventsResponse containing no more than 500 messages. To scroll through more than 500 or all WAF security events, one can use the SecurityEventScrollRequest. Use the scroll_id returned in the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityEventsScrollRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityIncidentsAggregationRequest": {
        "type": "object",
        "description": "Request to GET only aggregation data for security incidents.",
        "title": "Security Incidents Aggregation Request",
        "x-displayname": "Security Incidents Aggregation Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityIncidentsAggregationRequest",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over security incidents response. If the number of security incidents\nthat matched the query is large and cannot be returned in a single response message, user can GET helpful\ninsights/summary using aggregations. The aggregations are key'ed by user-defined aggregation name.\nThe response will be key'ed with the same name.\nOptional.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over security incidents response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over security incidents response. If the number of security incidents that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregations are key'ed by...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "end_time": {
            "type": "string",
            "description": "Fetch security incidents whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "end time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security incidents whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be...",
            "x-f5xc-description-medium": "Fetch security incidents whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Fetch security incidents for a given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch security incidents for a given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query": {
            "type": "string",
            "description": "Query is used to specify the list of matchers\nsyntax for query := {[<matcher>]}\n<matcher> := <field_name><operator>\"<value>\"\n<field_name> := string\nOne or more of these fields in the security event may be specified in the query.\nVh_name - name of the virtual host\nsrc_site - source site\ncity - name of the city\ncountry - country code\n<value> := string\n<operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\n=~ : regex match\n!~ : not regex match\nWhen more than one matcher is specified in the query, then security incidents matching ALL the matchers will be\nreturned in the response.\nExample: query={country=\"United States\", city=\"California\"} will return all security incidents originating from\nCalifornia, United States.\n\nOptional: If not specified, all security incidents matching the given tenant and namespace will be returned in\nthe response.",
            "title": "query",
            "x-displayname": "Query",
            "x-ves-example": "Query={app_type=\"blogging_app\"}",
            "x-f5xc-example": "\"query={app_type=\"blogging_app\"}\"",
            "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> :=...",
            "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> := string One or more of these fields in the security event may be specified in the query. Vh_name - name of the virtual host src_site - source site city ...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Fetch security incidents whose timestamp >= start_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security incidents whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be...",
            "x-f5xc-description-medium": "Fetch security incidents whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET only aggregation data for security incidents.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityIncidentsAggregationRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityIncidentsAggregationResponse": {
        "type": "object",
        "description": "Response message for SecurityIncidentsAggregationRequest.",
        "title": "Security Incidents Aggregation Response",
        "x-displayname": "Security Incidents Aggregation Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityIncidentsAggregationResponse",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security incidents response. If the number of security incidents\nthat matched the query is large and cannot be returned in a single response message, user can GET helpful\ninsights/summary using aggregations. The aggregation data is key'ed with the aggregation name specified in the request.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security incidents response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security incidents response. If the number of security incidents that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregation data is key'ed with...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "total_hits": {
            "type": "string",
            "description": "Total number of security incidents that matched the query.",
            "title": "total hits",
            "format": "uint64",
            "x-displayname": "Total Hits.",
            "x-ves-example": "0",
            "x-f5xc-example": "0",
            "x-f5xc-description-short": "Total number of security incidents that matched the query.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response message for SecurityIncidentsAggregationRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityIncidentsAggregationResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityIncidentsRequest": {
        "type": "object",
        "description": "Request to fetch security incidents.",
        "title": "Security Incidents Request",
        "x-displayname": "Security Incidents Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityIncidentsRequest",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security incidents response. If the number of security incidents\nthat matched the query is large and cannot be returned in a single response message, user can GET helpful\ninsights/summary using aggregations. The aggregations are key'ed by user-defined aggregation name. The response\nwill be key'ed with the same name.\nOptional.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security incidents response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security incidents response. If the number of security incidents that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregations are key'ed by...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "end_time": {
            "type": "string",
            "description": "Fetch security incidents whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "end time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security incidents whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be...",
            "x-f5xc-description-medium": "Fetch security incidents whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "limit": {
            "type": "integer",
            "description": "Limits the number of security incidents returned in the response\nOptional: If not specified, first or last 500 security events that matches the query (depending on the sort order) will be returned in the response.\nThe maximum value for limit is 500.",
            "title": "limit",
            "format": "int32",
            "x-displayname": "Limit",
            "x-ves-example": "100",
            "x-f5xc-example": "100",
            "x-f5xc-description-short": "Limits the number of security incidents returned in the response Optional: If not specified, first or last 500 security events that matches the...",
            "x-f5xc-description-medium": "Limits the number of security incidents returned in the response Optional: If not specified, first or last 500 security events that matches the query (depending on the sort order) will be returned in the response. The maximum value for limit is 500.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "policy",
              "minimum": 1,
              "maximum": 1000000,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Fetch security incidents for a given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch security incidents for a given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query": {
            "type": "string",
            "description": "Query is used to specify the list of matchers\nsyntax for query := {[<matcher>]}\n<matcher> := <field_name><operator>\"<value>\"\n<field_name> := string\nOne or more of these fields in the security incident may be specified in the query.\nVh_name - name of the virtual host\nsrc_site - source site\ncity - name of the city\ncountry - country code\n<value> := string\n<operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\n=~ : regex match\n!~ : not regex match\nWhen more than one matcher is specified in the query, then security incidents matching ALL the matchers will be returned in the response.\nExample: query={country=\"United States\", city=\"California\"} will return all security events originating from California, United States.\n\nOptional: If not specified, all the security events matching the given tenant and namespace will be returned in the response.",
            "title": "query",
            "x-displayname": "Query",
            "x-ves-example": "Query={app_type=\"blogging_app\"}",
            "x-f5xc-example": "\"query={app_type=\"blogging_app\"}\"",
            "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> :=...",
            "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> := string One or more of these fields in the security incident may be specified in the query. Vh_name - name of the virtual host src_site - source site city ...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "scroll": {
            "type": "boolean",
            "description": "Scroll is used to retrieve large number of security incidents (or all security incidents) that matches the query.\nIf scroll is set to true, the scroll_id in the response can be used in the scroll API to fetch the next\nbatch of security events until there are no more security events left to return. The number of messages in each\nbatch is determined by the limit field.\nNote: Scroll is used for processing large amount of data and therefore is not intended for real time user request.\nOptional: default is false.",
            "title": "scroll",
            "format": "boolean",
            "x-displayname": "Scroll",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Scroll is used to retrieve large number of security incidents (or all security incidents) that matches the query.",
            "x-f5xc-description-medium": "Scroll is used to retrieve large number of security incidents (or all security incidents) that matches the query. If scroll is set to true, the scroll_id in the response can be used in the scroll API to fetch the next batch of security events until there are no more security events left to...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "search_after": {
            "type": "boolean",
            "description": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query.\nIf search_after is set to true, the sort_values in the response can be used in the API to fetch the next\nbatch of logs. The number of messages in each batch is determined by the limit field.\nNote: Search After is used for processing large amount of data and therefore is not intended for real time user request.\nOptional: default is false.",
            "title": "search after",
            "format": "boolean",
            "x-displayname": "Search After.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query.",
            "x-f5xc-description-medium": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query. If search_after is set to true, the sort_values in the response can be used in the API to fetch the next batch of logs. The number of messages in each batch is determined by the limit field.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSortOrder"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort_by": {
            "type": "string",
            "description": "Optional: default is sort by last_event_time.",
            "title": "sort by",
            "x-displayname": "Sort By",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Optional: default is sort by last_event_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort_values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchAfterSortValues"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Fetch security incidents whose timestamp >= start_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch security incidents whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be...",
            "x-f5xc-description-medium": "Fetch security incidents whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityIncidentsRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityIncidentsResponse": {
        "type": "object",
        "description": "Response message for SecurityIncidentsRequest/SecurityIncidentsScrollRequest.",
        "title": "Security Incidents Response",
        "x-displayname": "Security Incidents Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityIncidentsResponse",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security incidents response. If the number of security incidents\nthat matched the query is large and cannot be returned in a single response message, user can GET helpful\ninsights/summary using aggregations.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security incidents response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security incidents response. If the number of security incidents that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "incidents": {
            "type": "array",
            "description": "List of security incidents that matched the query. Contains no more than 500 messages.",
            "title": "incidents",
            "items": {
              "type": "string"
            },
            "x-displayname": "Incidents",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "List of security incidents that matched the query. Contains no more than 500 messages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "last_sort_values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchAfterSortValues"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "scroll_id": {
            "type": "string",
            "description": "Long Base-64 encoded string which can be used to retrieve the next batch of security incidents using the scroll\nrequest.\nEmpty scroll_id indicates no more messages to scroll (EOF).\nNote: scroll_id is valid only for 2 minutes. I.e., If one intend to retrieve next batch of the result, then the\nscroll request should be sent within 2 minutes upon receiving the SecurityIncidentsResponse.",
            "title": "scroll id",
            "x-displayname": "Scroll ID",
            "x-ves-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
            "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve the next batch of security incidents using the scroll request.",
            "x-f5xc-description-medium": "Long Base-64 encoded string which can be used to retrieve the next batch of security incidents using the scroll request. Empty scroll_id indicates no more messages to scroll (EOF).",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "total_hits": {
            "type": "string",
            "description": "Total number of security events that matched the query.",
            "title": "total hits",
            "format": "uint64",
            "x-displayname": "Total Hits.",
            "x-ves-example": "0",
            "x-f5xc-example": "0",
            "x-f5xc-description-short": "Total number of security events that matched the query.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response message for SecurityIncidentsRequest/SecurityIncidentsScrollRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityIncidentsResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySecurityIncidentsScrollRequest": {
        "type": "object",
        "description": "Scroll request is used to fetch large number of security incidents in multiple batches with each SecurityIncidentsResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all security incidents, one can use the\nSecurityIncidentsScrollRequest. Use the scroll_id returned in the SecurityIncidentsResponse to fetch the next batch\nof security events and one can continue this process till the scroll_id returned is \"\" which indicates no more\nmessages to scroll.",
        "title": "Security Incidents Scroll Request",
        "x-displayname": "Security Incidents Scroll Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SecurityIncidentsScrollRequest",
        "properties": {
          "namespace": {
            "type": "string",
            "description": "Fetch security incidents for a given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch security incidents for a given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "scroll_id": {
            "type": "string",
            "description": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "title": "scroll id",
            "x-displayname": "Scroll ID",
            "x-ves-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
            "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "Scroll request is used to fetch large number of security incidents in multiple batches with each SecurityIncidentsResponse containing no more than...",
        "x-f5xc-description-medium": "Scroll request is used to fetch large number of security incidents in multiple batches with each SecurityIncidentsResponse containing no more than 500 messages. To scroll through more than 500 or all security incidents, one can use the SecurityIncidentsScrollRequest. Use the scroll_id returned...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySecurityIncidentsScrollRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySuspiciousUserLogsAggregationRequest": {
        "type": "object",
        "description": "Request to GET only aggregation data for suspicious user logs.",
        "title": "Suspicious User Logs Aggregation Request",
        "x-displayname": "Suspicious User Logs Aggregation Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SuspiciousUserLogsAggregationRequest",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the suspicious user logs response. If the number of logs that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.\nThe aggregations are key'ed by user-defined aggregation name. The response will be key'ed with the same name.\nOptional.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the suspicious user logs response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the suspicious user logs response. If the number of logs that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregations are key'ed by user-defined...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "end_time": {
            "type": "string",
            "description": "Fetch suspicious user logs whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "end time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch suspicious user logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be...",
            "x-f5xc-description-medium": "Fetch suspicious user logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Fetch suspicious user logs for a given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch suspicious user logs for a given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query": {
            "type": "string",
            "description": "Query is used to specify the list of matchers\nsyntax for query := {[<matcher>]}\n<matcher> := <field_name><operator>\"<value>\"\n<field_name> := string\nOne or more of these fields in the suspicious user logs may be specified in the query.\nVh_name - name of the virtual host\nuser - user ID\nsite - source site\ncity - name of the city\ncountry - country code\n<value> := string\n<operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\n=~ : regex match\n!~ : not regex match\nWhen more than one matcher is specified in the query, then suspicious user logs matching ALL the matchers will be returned in the response.\n\nOptional: If not specified, all the suspicious user logs matching the given tenant and namespace will be returned in the response.",
            "title": "query",
            "x-displayname": "Query",
            "x-ves-example": "Query={vh_name=\"vh-1\", site=\"CE-01\"}",
            "x-f5xc-example": "\"query={vh_name=\"vh-1\", site=\"ce-01\"}\"",
            "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> :=...",
            "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> := string One or more of these fields in the suspicious user logs may be specified in the query. Vh_name - name of the virtual host user - user ID site ...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Fetch suspicious user logs whose timestamp >= start_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch suspicious user logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be...",
            "x-f5xc-description-medium": "Fetch suspicious user logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET only aggregation data for suspicious user logs.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySuspiciousUserLogsAggregationRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySuspiciousUserLogsAggregationResponse": {
        "type": "object",
        "description": "Response message for SuspiciousUserLogsAggregationRequest.",
        "title": "Suspicious User Logs Aggregation Response",
        "x-displayname": "Suspicious User Logs Aggregation Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SuspiciousUserLogsAggregationResponse",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the suspicious user logs response. If the number of logs that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.\nThe aggregation data is key'ed with the aggregation name specified in the request.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the suspicious user logs response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the suspicious user logs response. If the number of logs that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregation data is key'ed with the...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "total_hits": {
            "type": "string",
            "description": "Total number of suspicious user logs that matched the query.",
            "title": "total hits",
            "format": "uint64",
            "x-displayname": "Total Hits.",
            "x-ves-example": "1400",
            "x-f5xc-example": "1400",
            "x-f5xc-description-short": "Total number of suspicious user logs that matched the query.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response message for SuspiciousUserLogsAggregationRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySuspiciousUserLogsAggregationResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySuspiciousUserLogsRequest": {
        "type": "object",
        "description": "Request to fetch suspicious user logs.",
        "title": "Suspicious User Logs Request",
        "x-displayname": "Suspicious User Logs Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SuspiciousUserLogsRequest",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the suspicious user logs response. If the number of logs that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.\nThe aggregations are key'ed by user-defined aggregation name. The response will be key'ed with the same name.\nOptional.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the suspicious user logs response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the suspicious user logs response. If the number of logs that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations. The aggregations are key'ed by user-defined...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "end_time": {
            "type": "string",
            "description": "Fetch suspicious user logs whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "end time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch suspicious user logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be...",
            "x-f5xc-description-medium": "Fetch suspicious user logs whose timestamp <= end_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "limit": {
            "type": "integer",
            "description": "Limits the number of logs returned in the response\nOptional: If not specified, first or last 500 logs that matches the query (depending on the sort order) will be returned in the response.\nThe maximum value for limit is 500.",
            "title": "limit",
            "format": "int32",
            "x-displayname": "Limit",
            "x-ves-example": "100",
            "x-f5xc-example": "100",
            "x-f5xc-description-short": "Limits the number of logs returned in the response Optional: If not specified, first or last 500 logs that matches the query (depending on the...",
            "x-f5xc-description-medium": "Limits the number of logs returned in the response Optional: If not specified, first or last 500 logs that matches the query (depending on the sort order) will be returned in the response. The maximum value for limit is 500.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "policy",
              "minimum": 1,
              "maximum": 1000000,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Fetch suspicious user logs for a given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch suspicious user logs for a given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query": {
            "type": "string",
            "description": "Query is used to specify the list of matchers\nsyntax for query := {[<matcher>]}\n<matcher> := <field_name><operator>\"<value>\"\n<field_name> := string\nOne or more of these fields in the suspicious user logs may be specified in the query.\nVh_name - name of the virtual host\nuser - user ID\nsite - source site\ncity - name of the city\ncountry - country code\n<value> := string\n<operator> := [\"=\"|\"!=\"|\"=~\"|\"!~\"]\n= : equal to\n!= : not equal to\n=~ : regex match\n!~ : not regex match\nWhen more than one matcher is specified in the query, then suspicious user logs matching ALL the matchers will be returned in the response.\n\nOptional: If not specified, all the suspicious user logs matching the given tenant and namespace will be returned in the response.",
            "title": "query",
            "x-displayname": "Query",
            "x-ves-example": "Query={vh_name=\"vh-1\", site=\"CE-01\"}",
            "x-f5xc-example": "\"query={vh_name=\"vh-1\", site=\"ce-01\"}\"",
            "x-f5xc-description-short": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> :=...",
            "x-f5xc-description-medium": "Query is used to specify the list of matchers syntax for query := {[<matcher>]} <matcher> := <field_name><operator>\"<value>\" <field_name> := string One or more of these fields in the suspicious user logs may be specified in the query. Vh_name - name of the virtual host user - user ID site ...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "metadata": {
                "source": "inferred",
                "confidence": 0.75,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "scroll": {
            "type": "boolean",
            "description": "Scroll is used to retrieve large number of logs (or all logs) that matches the query.\nIf scroll is set to true, the scroll_id in the response can be used in the scroll API to fetch the next\nbatch of logs until there are no logs left to return. The number of logs in each batch is determined\nby the limit field.\nNote: Scroll is used for processing large amount of data and therefore is not intended for real time user request.\nOptional: default is false.",
            "title": "scroll",
            "format": "boolean",
            "x-displayname": "Scroll",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Scroll is used to retrieve large number of logs (or all logs) that matches the query.",
            "x-f5xc-description-medium": "Scroll is used to retrieve large number of logs (or all logs) that matches the query. If scroll is set to true, the scroll_id in the response can be used in the scroll API to fetch the next batch of logs until there are no logs left to return. The number of logs in each batch is determined by...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "search_after": {
            "type": "boolean",
            "description": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query.\nIf search_after is set to true, the sort_values in the response can be used in the API to fetch the next\nbatch of logs. The number of messages in each batch is determined by the limit field.\nNote: Search After is used for processing large amount of data and therefore is not intended for real time user request.\nOptional: default is false.",
            "title": "search after",
            "format": "boolean",
            "x-displayname": "Search After.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query.",
            "x-f5xc-description-medium": "Search After is used to retrieve large number of log messages (or all log messages) that matches the query. If search_after is set to true, the sort_values in the response can be used in the API to fetch the next batch of logs. The number of messages in each batch is determined by the limit field.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSortOrder"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort_by": {
            "type": "string",
            "description": "Optional: default is sort by last_event_time.",
            "title": "sort by",
            "x-displayname": "Sort By",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Optional: default is sort by last_event_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sort_values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchAfterSortValues"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Fetch suspicious user logs whose timestamp >= start_time\nformat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Fetch suspicious user logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be...",
            "x-f5xc-description-medium": "Fetch suspicious user logs whose timestamp >= start_time format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySuspiciousUserLogsRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySuspiciousUserLogsResponse": {
        "type": "object",
        "description": "Response message for Suspicious User Logs Request.",
        "title": "Suspicious User Logs Response",
        "x-displayname": "Suspicious User Logs Response.",
        "x-ves-proto-message": "ves.io.schema.app_security.SuspiciousUserLogsResponse",
        "properties": {
          "aggs": {
            "type": "object",
            "description": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query\nis large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.",
            "title": "aggregations",
            "x-displayname": "Aggregations.",
            "x-f5xc-description-short": "Aggregations provide summary/analytics data over the security events response.",
            "x-f5xc-description-medium": "Aggregations provide summary/analytics data over the security events response. If the number of security events that matched the query is large and cannot be returned in a single response message, user can GET helpful insights/summary using aggregations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "last_sort_values": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_securitySearchAfterSortValues"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "logs": {
            "type": "array",
            "description": "List of log messages that matched the query. Contains no more than 500 messages.",
            "title": "events",
            "items": {
              "type": "string"
            },
            "x-displayname": "Events",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "List of log messages that matched the query. Contains no more than 500 messages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "scroll_id": {
            "type": "string",
            "description": "Long Base-64 encoded string which can be used to retrieve the next batch of suspicious user logs using the scroll request.\nEmpty scroll_id indicates no more messages to scroll (EOF).\nNote: scroll_id is valid only for 2 minutes. I.e., If one intend to retrieve next batch of the result, then the\nscroll request should be sent within 2 minutes upon receiving the SuspiciousUserLogsResponse.",
            "title": "scroll id",
            "x-displayname": "Scroll ID",
            "x-ves-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
            "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve the next batch of suspicious user logs using the scroll request.",
            "x-f5xc-description-medium": "Long Base-64 encoded string which can be used to retrieve the next batch of suspicious user logs using the scroll request. Empty scroll_id indicates no more messages to scroll (EOF).",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "total_hits": {
            "type": "string",
            "description": "Total number of logs that matched the query.",
            "title": "total hits",
            "format": "uint64",
            "x-displayname": "Total Hits.",
            "x-ves-example": "100",
            "x-f5xc-example": "100",
            "x-f5xc-description-short": "Total number of logs that matched the query.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response message for Suspicious User Logs Request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySuspiciousUserLogsResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securitySuspiciousUserLogsScrollRequest": {
        "type": "object",
        "description": "Scroll request is used to fetch large number of suspicious user logs in multiple batches with each SuspiciousUserLogsResponse\ncontaining no more than 500 messages. To scroll through more than 500 or all messages, one can use the\nSuspiciousUserLogsScrollRequest. Use the scroll_id returned in the SuspiciousUserLogsResponse to fetch the next batch of logs\nand one can continue this process till the scroll_id returned is \"\" which indicates no more logs to scroll.",
        "title": "Suspicious User Logs Scroll Request",
        "x-displayname": "Suspicious User Logs Scroll Request.",
        "x-ves-proto-message": "ves.io.schema.app_security.SuspiciousUserLogsScrollRequest",
        "properties": {
          "namespace": {
            "type": "string",
            "description": "Fetch the next batch of suspicious user logs scoped by namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Fetch the next batch of suspicious user logs scoped by namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "scroll_id": {
            "type": "string",
            "description": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "title": "scroll id",
            "x-displayname": "Scroll ID",
            "x-ves-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==.",
            "x-f5xc-example": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ==",
            "x-f5xc-description-short": "Long Base-64 encoded string which can be used to retrieve next batch of security events.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "Scroll request is used to fetch large number of suspicious user logs in multiple batches with each SuspiciousUserLogsResponse containing no more...",
        "x-f5xc-description-medium": "Scroll request is used to fetch large number of suspicious user logs in multiple batches with each SuspiciousUserLogsResponse containing no more than 500 messages. To scroll through more than 500 or all messages, one can use the SuspiciousUserLogsScrollRequest. Use the scroll_id returned in the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securitySuspiciousUserLogsScrollRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_securityThreatCampaign": {
        "type": "object",
        "description": "Threat Campaign object representing the created threat campaign.",
        "title": "Threat Campaign",
        "x-displayname": "Threat Campaign.",
        "x-ves-proto-message": "ves.io.schema.app_security.ThreatCampaign",
        "properties": {
          "attack_type": {
            "type": "string",
            "description": "The Threat Campaign Attack Type.",
            "title": "attack_type",
            "x-displayname": "Attack Type.",
            "x-ves-example": "Server Side Code Injection.",
            "x-f5xc-example": "Server Side Code Injection",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The Threat Campaign Description.",
            "title": "description",
            "x-displayname": "Description.",
            "x-ves-example": "This campaign aims to identify Drupal web servers vulnerable to Drupalgeddon2 RCE vulnerability (CVE-2018-7600). The threat actor instructs the server to download and execute a cryptocurrency miner. The same threat actor was previously detected exploiting Drupal REST Module RCE vulnerability (CVE-2019-6340).",
            "x-f5xc-example": "This campaign aims to identify Drupal web servers vulnerable to Drupalgeddon2 RCE vulnerability (CVE-2018-7600). The threat actor instructs the server to download and execute a cryptocurrency miner.   The same threat actor was previously detected exploiting Drupal REST Module RCE vulnerability (CVE-2019-6340).",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "id": {
            "type": "string",
            "description": "The Threat Campaign ID.",
            "title": "id",
            "x-displayname": "ID",
            "x-ves-example": "Cmp5641a5adbeabaf2708ce7663ad937df8.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "cmp5641a5adbeabaf2708ce7663ad937df8",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "intent": {
            "type": "string",
            "description": "The Threat Campaign Intent.",
            "title": "intent",
            "x-displayname": "Intent",
            "x-ves-example": "Malware Spreading - Crypto Currency Miner.",
            "x-f5xc-example": "Malware Spreading - Crypto Currency Miner",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "last_update": {
            "type": "string",
            "description": "The Threat Campaign last update time.",
            "title": "last_update",
            "x-displayname": "Last Update.",
            "x-ves-example": "2022/11/29 20:19:17.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "2022/11/29 20:19:17",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "malwares": {
            "type": "array",
            "description": "The Threat Campaign Malwares.",
            "title": "malwares",
            "items": {
              "type": "string"
            },
            "x-displayname": "Malwares",
            "x-ves-example": "['Cryptocurrency Miner']",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "['Cryptocurrency Miner']",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The Threat Campaign Name.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Drupal 'Drupalgeddon2' RCE - exec48ne.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "Drupal 'Drupalgeddon2' RCE - exec48ne",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "references": {
            "type": "array",
            "description": "The Threat Campaign References.",
            "title": "references",
            "items": {
              "type": "string"
            },
            "x-displayname": "References.",
            "x-ves-example": "['CVE-2018-7600']",
            "x-f5xc-example": "['CVE-2018-7600']",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "risk": {
            "type": "string",
            "description": "The Threat Campaign Risk.",
            "title": "risk",
            "x-displayname": "Risk",
            "x-ves-example": "High",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "High",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "systems": {
            "type": "array",
            "description": "The Threat Campaign Systems.",
            "title": "systems",
            "items": {
              "type": "string"
            },
            "x-displayname": "Systems",
            "x-ves-example": "['PHP', 'Unix/Linux']",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "['PHP', 'Unix/Linux']",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Threat Campaign object representing the created threat campaign.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_securityThreatCampaign",
          "required_fields": [
            "id",
            "last_update",
            "malwares",
            "name",
            "risk",
            "systems"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"id\": \"cmp5641a5adbeabaf2708ce7663ad937df8\",\n  \"last_update\": \"2022/11/29 20:19:17\",\n  \"malwares\": [\n    \"value\"\n  ],\n  \"name\": \"Drupal 'Drupalgeddon2' RCE - exec48ne\",\n  \"risk\": \"High\",\n  \"systems\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "id: cmp5641a5adbeabaf2708ce7663ad937df8\nlast_update: 2022/11/29 20:19:17\nmalwares:\n- value\nname: Drupal 'Drupalgeddon2' RCE - exec48ne\nrisk: High\nsystems:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityDDoSClientSource": {
        "type": "object",
        "description": "DDoS Mitigation sources to be blocked.",
        "title": "DDoSClientSource",
        "x-displayname": "DDoS Client Source Choice.",
        "x-ves-displayorder": "1,3,5,6",
        "x-ves-proto-message": "ves.io.schema.views.common_security.DDoSClientSource",
        "properties": {
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "country_list": {
            "type": "array",
            "description": "Sources that are located in one of the countries in the given list.",
            "title": "country_list",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyCountryCode"
            },
            "x-displayname": "Country List.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Sources that are located in one of the countries in the given list.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ja4_tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyJA4TlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ja4 tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityDDoSClientSource",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityDDoSMitigationRule__ves_io_schema_app_security": {
        "type": "object",
        "description": "DDoS Mitigation Rule specifies the sources to be blocked.",
        "title": "DDoSMitigationRule",
        "x-displayname": "DDoS Mitigation Rule.",
        "x-ves-displayorder": "1,2,7,10",
        "x-ves-oneof-field-mitigation_action": "[\"block\"]",
        "x-ves-oneof-field-mitigation_choice": "[\"ddos_client_source\",\"ip_prefix_list\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.DDoSMitigationRule",
        "properties": {
          "block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ddos_client_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityDDoSClientSource"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_prefix_list"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "title": "expiration timestamp",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ddos_client_source"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "DDoS Mitigation Rule specifies the sources to be blocked.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityDDoSMitigationRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIEndpointProtectionRule__ves_io_schema_app_security": {
        "type": "object",
        "description": "API Protection Rule for a specific endpoint.",
        "title": "API Endpoint Protection Rule",
        "x-displayname": "API Endpoint Protection Rule.",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIEndpointProtectionRule",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIProtectionRuleAction__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_endpoint_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_endpoint_path": {
            "type": "string",
            "description": "The endpoint (path) of the request.",
            "title": "api endpoint path",
            "maxLength": 1024,
            "x-displayname": "API Endpoint.",
            "x-ves-example": "/endpoint1.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/endpoint1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "client_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyClientMatcher__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestMatcher__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.\nFor example: api.example.com.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-example": "api.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-example": "api.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain. For",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-description-short": "API Protection Rule for a specific endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIEndpointProtectionRule",
          "required_fields": [
            "api_endpoint_path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_endpoint_path\": \"/endpoint1\"\n}",
          "example_yaml": "api_endpoint_path: /endpoint1"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIProtectionRuleAction__ves_io_schema_app_security": {
        "type": "object",
        "description": "The action to take if the input request matches the rule.",
        "title": "API Protection Rule Action",
        "x-displayname": "API Protection Rule Action.",
        "x-ves-oneof-field-action": "[\"allow\",\"deny\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIProtectionRuleAction",
        "properties": {
          "allow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "deny"
            ]
          },
          "deny": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow"
            ]
          }
        },
        "x-f5xc-description-short": "The action to take if the input request matches the rule.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIProtectionRuleAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiEndpointDetails": {
        "type": "object",
        "description": "This defines API endpoint.",
        "title": "ApiEndpointDetails",
        "x-displayname": "API Endpoint.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiEndpointDetails",
        "properties": {
          "methods": {
            "type": "array",
            "description": "Methods to be matched.",
            "title": "Methods",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaHttpMethod"
            },
            "x-displayname": "Methods",
            "x-ves-example": "GET",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "GET",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "type": "string",
            "description": "Path to be matched.",
            "title": "Path",
            "maxLength": 1024,
            "x-displayname": "Path",
            "x-ves-example": "/API/v1/login.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/api/v1/login",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiEndpointDetails",
          "required_fields": [
            "path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/api/v1/login\"\n}",
          "example_yaml": "path: /api/v1/login"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiEndpointRule__ves_io_schema_app_security": {
        "type": "object",
        "title": "ApiEndpointRule",
        "x-displayname": "ApiEndpointRule.",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-oneof-field-rate_limiter_choice": "[\"inline_rate_limiter\",\"ref_rate_limiter\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiEndpointRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_endpoint_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_endpoint_path": {
            "type": "string",
            "description": "The endpoint (path) of the request.",
            "title": "api endpoint path",
            "maxLength": 1024,
            "x-displayname": "API Endpoint.",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "client_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyClientMatcher__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "inline_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafInlineRateLimiter__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inline rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Inline rate-limiter settings for this domain, base-path, or endpoint rule. Select this field as the required rate_limiter_choice when no stored rate-limiter object is used.",
            "x-f5xc-conflicts-with": [
              "ref_rate_limiter"
            ]
          },
          "ref_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ref rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Reference to a stored rate-limiter object for this scoped rule. Select exactly one of ref_rate_limiter and inline_rate_limiter.",
            "x-f5xc-conflicts-with": [
              "inline_rate_limiter"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "rate_limiter",
                "field_path": "ref_rate_limiter",
                "gated_by": {
                  "choice": "rate_limiter_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "request_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestMatcher__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiEndpointRule",
          "required_fields": [
            "api_endpoint_path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_endpoint_path\": \"value\"\n}",
          "example_yaml": "api_endpoint_path: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafClientSrcRuleAction": {
        "type": "string",
        "description": "Action that should be taken when client identifier matches the rule.",
        "title": "action",
        "enum": [
          "SKIP_PROCESSING_WAF",
          "SKIP_PROCESSING_BOT",
          "SKIP_PROCESSING_MUM",
          "SKIP_PROCESSING_IP_REPUTATION",
          "SKIP_PROCESSING_API_PROTECTION",
          "SKIP_PROCESSING_OAS_VALIDATION",
          "SKIP_PROCESSING_DDOS_PROTECTION",
          "SKIP_PROCESSING_THREAT_MESH",
          "SKIP_PROCESSING_MALWARE_PROTECTION"
        ],
        "default": "SKIP_PROCESSING_WAF",
        "x-displayname": "Action",
        "x-ves-proto-enum": "ves.io.schema.views.common_waf.ClientSrcRuleAction",
        "x-f5xc-description-short": "Action that should be taken when client identifier matches the rule.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafClientSrcRuleAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"SKIP_PROCESSING_WAF\"",
          "example_yaml": "SKIP_PROCESSING_WAF\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafCustomFallThroughMode__ves_io_schema_app_security": {
        "type": "object",
        "description": "Define the fall through settings.",
        "title": "Custom Fall Through Mode",
        "x-displayname": "Custom Fall Through Mode.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.CustomFallThroughMode",
        "properties": {
          "open_api_validation_rules": {
            "type": "array",
            "description": "Rule or policy definition",
            "title": "Custom Fall Through Rule List",
            "maxItems": 15,
            "items": {
              "$ref": "#/components/schemas/common_wafFallThroughRule__ves_io_schema_app_security"
            },
            "x-displayname": "Custom Fall Through Rule List.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "15",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "15",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 15,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafCustomFallThroughMode",
          "required_fields": [
            "open_api_validation_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"open_api_validation_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "open_api_validation_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafFallThroughRule__ves_io_schema_app_security": {
        "type": "object",
        "description": "Fall Through Rule for a specific endpoint, base-path, or API group.",
        "title": "Fall Through Rule",
        "x-displayname": "Fall Through Rule.",
        "x-ves-oneof-field-action_choice": "[\"action_block\",\"action_report\",\"action_skip\"]",
        "x-ves-oneof-field-condition_type_choice": "[\"api_endpoint\",\"api_group\",\"base_path\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.FallThroughRule",
        "properties": {
          "action_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "action_report",
              "action_skip"
            ]
          },
          "action_report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "action_block",
              "action_skip"
            ]
          },
          "action_skip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "action_block",
              "action_report"
            ]
          },
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointDetails"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_group",
              "base_path"
            ]
          },
          "api_group": {
            "type": "string",
            "description": "Exclusive with [api_endpoint base_path]\nThe API group which this validation applies to.",
            "title": "api_group",
            "maxLength": 128,
            "x-displayname": "API Group",
            "x-ves-example": "Oas-all-operations.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "oas-all-operations",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint base_path] The API group which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "base_path"
            ]
          },
          "base_path": {
            "type": "string",
            "description": "Exclusive with [api_endpoint api_group]\nThe base path which this validation applies to.",
            "title": "base path",
            "maxLength": 128,
            "x-displayname": "Base Path",
            "x-ves-example": "/API/v1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "/api/v1",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint api_group] The base path which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "api_group"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Fall Through Rule for a specific endpoint, base-path, or API group.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafFallThroughRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafHttpHeaderMatcherList": {
        "type": "object",
        "description": "Request header name and value pairs.",
        "title": "HTTP Header",
        "x-displayname": "HTTP Header.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.HttpHeaderMatcherList",
        "properties": {
          "headers": {
            "type": "array",
            "description": "List of HTTP header name and value pairs.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/ioschemaHeaderMatcherType"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of HTTP header name and value pairs.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafHttpHeaderMatcherList",
          "required_fields": [
            "headers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"headers\": [\n    {\n      \"name\": \"Content-Type\"\n    }\n  ]\n}",
          "example_yaml": "headers:\n- name: Content-Type"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafInlineRateLimiter__ves_io_schema_app_security": {
        "type": "object",
        "title": "InlineRateLimiter",
        "x-displayname": "InlineRateLimiter.",
        "x-ves-oneof-field-count_by_choice": "[\"ref_user_id\",\"use_http_lb_user_id\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.InlineRateLimiter",
        "properties": {
          "ref_user_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "use_http_lb_user_id"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "user_identification",
                "field_path": "ref_user_id",
                "gated_by": {
                  "choice": "count_by_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "threshold": {
            "type": "integer",
            "description": "The total number of allowed requests for 1 unit (e.g. SECOND/MINUTE/HOUR etc.) of the specified period.",
            "title": "threshold",
            "format": "int64",
            "x-displayname": "Threshold",
            "x-ves-example": "1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "8192"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "8192"
            },
            "x-f5xc-description-short": "The total number of allowed requests for 1 unit (e.g. SECOND/MINUTE/HOUR etc.) of the specified period.",
            "x-f5xc-description-medium": "The total number of allowed requests for 1 unit (e.g. SECOND/MINUTE/HOUR etc.) of the specified period.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 8192,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "unit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterRateLimitPeriodUnit"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_http_lb_user_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "ref_user_id"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafInlineRateLimiter",
          "required_fields": [
            "threshold"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"threshold\": 0\n}",
          "example_yaml": "threshold: 0"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiFallThroughMode__ves_io_schema_app_security": {
        "type": "object",
        "description": "Determine what to do with unprotected endpoints (not in the OpenAPI specification file (a.k.a. Swagger) or doesn't have a specific rule in custom rules)",
        "title": "Fall Through Mode",
        "x-displayname": "Fall Through Mode.",
        "x-ves-oneof-field-fall_through_mode_choice": "[\"fall_through_mode_allow\",\"fall_through_mode_custom\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiFallThroughMode",
        "properties": {
          "fall_through_mode_allow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fall through mode allow.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "fall_through_mode_custom"
            ]
          },
          "fall_through_mode_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafCustomFallThroughMode__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fall through mode custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "fall_through_mode_allow"
            ]
          }
        },
        "x-required": true,
        "x-f5xc-description-short": "Determine what to do with unprotected endpoints (not in the OpenAPI specification file (a.k.a.",
        "x-f5xc-description-medium": "Determine what to do with unprotected endpoints (not in the OpenAPI specification file (a.k.a. Swagger) or doesn't have a specific rule in custom rules).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiFallThroughMode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationAllSpecEndpointsSettings__ves_io_schema_app_security": {
        "type": "object",
        "description": "Settings for API Inventory validation.",
        "title": "OpenAPI Validation API Inventory Settings",
        "x-displayname": "API Inventory.",
        "x-ves-oneof-field-oversized_body_choice": "[]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationAllSpecEndpointsSettings",
        "properties": {
          "fall_through_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiFallThroughMode__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fall through mode.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationCommonSettings__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "validation_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationMode__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation mode.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationAllSpecEndpointsSettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationCommonSettings__ves_io_schema_app_security": {
        "type": "object",
        "description": "OpenAPI specification validation settings relevant for \"API Inventory\" enforcement and for \"Custom list\" enforcement.",
        "title": "OpenAPI specification validation common settings",
        "x-displayname": "Common Settings.",
        "x-ves-oneof-field-fail_configuration": "[]",
        "x-ves-oneof-field-oversized_body_choice": "[\"oversized_body_fail_validation\",\"oversized_body_skip_validation\"]",
        "x-ves-oneof-field-property_validation_settings_choice": "[\"property_validation_settings_custom\",\"property_validation_settings_default\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationCommonSettings",
        "properties": {
          "oversized_body_fail_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "oversized_body_skip_validation"
            ]
          },
          "oversized_body_skip_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "oversized_body_fail_validation"
            ]
          },
          "property_validation_settings_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafValidationPropertySetting__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for property validation settings custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "property_validation_settings_default"
            ]
          },
          "property_validation_settings_default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for property validation settings default.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "property_validation_settings_custom"
            ]
          }
        },
        "x-f5xc-description-short": "OpenAPI specification validation settings relevant for \"API Inventory\" enforcement and for \"Custom list\" enforcement.",
        "x-f5xc-description-medium": "OpenAPI specification validation settings relevant for \"API Inventory\" enforcement and for \"Custom list\" enforcement.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationCommonSettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationMode__ves_io_schema_app_security": {
        "type": "object",
        "description": "Validation mode of OpenAPI specification.\nWhen a validation mismatch occurs on a request to one of the endpoints listed on the OpenAPI specification file (a.k.a. Swagger)",
        "title": "Validation Mode",
        "x-displayname": "Validation Mode.",
        "x-ves-oneof-field-response_validation_mode_choice": "[\"response_validation_mode_active\",\"skip_response_validation\"]",
        "x-ves-oneof-field-validation_mode_choice": "[\"skip_validation\",\"validation_mode_active\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationMode",
        "properties": {
          "response_validation_mode_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationModeActiveResponse__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "skip_response_validation"
            ]
          },
          "skip_response_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "response_validation_mode_active"
            ]
          },
          "skip_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "validation_mode_active"
            ]
          },
          "validation_mode_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationModeActive__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Enable OpenAPI validation and explicitly select enforcement_report to allow and log invalid traffic, or enforcement_block to reject invalid...",
            "x-f5xc-description-medium": "Enable OpenAPI validation and explicitly select enforcement_report to allow and log invalid traffic, or enforcement_block to reject invalid requests with HTTP 403.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Enable OpenAPI validation and explicitly select enforcement_report to allow and log invalid traffic, or enforcement_block to reject invalid requests with HTTP 403.",
            "x-f5xc-conflicts-with": [
              "skip_validation"
            ]
          }
        },
        "x-required": true,
        "x-f5xc-description-short": "Validation mode of OpenAPI specification.",
        "x-f5xc-description-medium": "Validation mode of OpenAPI specification. When a validation mismatch occurs on a request to one of the endpoints listed on the OpenAPI specification file (a.k.a. Swagger).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationMode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationModeActive__ves_io_schema_app_security": {
        "type": "object",
        "description": "Validation mode properties of request.",
        "title": "Open API Validation Mode Active For Request",
        "x-displayname": "Open API Validation Mode Active.",
        "x-ves-oneof-field-validation_enforcement_type": "[\"enforcement_block\",\"enforcement_report\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationModeActive",
        "properties": {
          "enforcement_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties.",
            "x-f5xc-description-medium": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-conflicts-with": [
              "enforcement_report"
            ]
          },
          "enforcement_report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-description-medium": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-conflicts-with": [
              "enforcement_block"
            ]
          },
          "request_validation_properties": {
            "type": "array",
            "description": "List of properties of the request to validate according to the OpenAPI specification file (a.k.a. Swagger)",
            "title": "Request Validation Properties",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/schemaOpenApiValidationProperties"
            },
            "x-displayname": "Request Validation Properties.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of properties of the request to validate according to the OpenAPI specification file (a.k.a.",
            "x-f5xc-description-medium": "List of properties of the request to validate according to the OpenAPI specification file (a.k.a. Swagger).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationModeActive",
          "required_fields": [
            "request_validation_properties"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"request_validation_properties\": [\n    \"PROPERTY_QUERY_PARAMETERS\"\n  ]\n}",
          "example_yaml": "request_validation_properties:\n- PROPERTY_QUERY_PARAMETERS"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationModeActiveResponse__ves_io_schema_app_security": {
        "type": "object",
        "description": "Validation mode properties of response.",
        "title": "Open API Validation Mode Active For Response",
        "x-displayname": "Open API Validation Mode Active.",
        "x-ves-oneof-field-validation_enforcement_type": "[\"enforcement_block\",\"enforcement_report\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationModeActiveResponse",
        "properties": {
          "enforcement_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties.",
            "x-f5xc-description-medium": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-conflicts-with": [
              "enforcement_report"
            ]
          },
          "enforcement_report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-description-medium": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-conflicts-with": [
              "enforcement_block"
            ]
          },
          "response_validation_properties": {
            "type": "array",
            "description": "List of properties of the response to validate according to the OpenAPI specification file (a.k.a. Swagger)",
            "title": "Response Validation Properties",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/schemaOpenApiValidationProperties"
            },
            "x-displayname": "Response Validation Properties.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.in": "[2,4,5,7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.in": "[2,4,5,7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of properties of the response to validate according to the OpenAPI specification file (a.k.a.",
            "x-f5xc-description-medium": "List of properties of the response to validate according to the OpenAPI specification file (a.k.a. Swagger).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationModeActiveResponse",
          "required_fields": [
            "response_validation_properties"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"response_validation_properties\": [\n    \"PROPERTY_QUERY_PARAMETERS\"\n  ]\n}",
          "example_yaml": "response_validation_properties:\n- PROPERTY_QUERY_PARAMETERS"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationRule__ves_io_schema_app_security": {
        "type": "object",
        "description": "OpenAPI Validation Rule for a specific endpoint, base-path, or API group.",
        "title": "OpenAPI Validation Rule",
        "x-displayname": "OpenAPI Validation Rule.",
        "x-ves-oneof-field-condition_type_choice": "[\"api_endpoint\",\"api_group\",\"base_path\"]",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointDetails"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_group",
              "base_path"
            ]
          },
          "api_group": {
            "type": "string",
            "description": "Exclusive with [api_endpoint base_path]\nThe API group which this validation applies to.",
            "title": "api_group",
            "maxLength": 128,
            "x-displayname": "API Group",
            "x-ves-example": "Oas-all-operations.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "oas-all-operations",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint base_path] The API group which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "base_path"
            ]
          },
          "base_path": {
            "type": "string",
            "description": "Exclusive with [api_endpoint api_group]\nThe base path which this validation applies to.",
            "title": "base path",
            "maxLength": 128,
            "x-displayname": "Base Path",
            "x-ves-example": "/API/v1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "/api/v1",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint api_group] The base path which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "api_group"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          },
          "validation_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationMode__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation mode.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "OpenAPI Validation Rule for a specific endpoint, base-path, or API group.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafSimpleClientSrcRule__ves_io_schema_app_security": {
        "type": "object",
        "description": "Simple client source rule specifies the sources to be blocked or trusted (skip WAF)",
        "title": "SimpleClientSrcRule",
        "x-displayname": "Client Rule.",
        "x-ves-oneof-field-action_choice": "[\"bot_skip_processing\",\"skip_processing\",\"waf_skip_processing\"]",
        "x-ves-oneof-field-client_source_choice": "[\"as_number\",\"http_header\",\"ip_prefix\",\"ipv6_prefix\",\"user_identifier\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.SimpleClientSrcRule",
        "properties": {
          "actions": {
            "type": "array",
            "description": "Actions that should be taken when client identifier matches the rule.",
            "title": "actions",
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/common_wafClientSrcRuleAction"
            },
            "x-displayname": "Actions",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.enum.defined_only": "true",
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "10",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.enum.defined_only": "true",
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "10",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Actions that should be taken when client identifier matches the rule.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 10,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "as_number": {
            "type": "integer",
            "description": "Exclusive with [http_header ip_prefix ipv6_prefix user_identifier]\nRFC 6793 defined 4-byte AS number.",
            "title": "as number",
            "format": "int64",
            "x-displayname": "AS Number",
            "x-ves-example": "4683",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-example": "4683",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-description-short": "Exclusive with [http_header ip_prefix ipv6_prefix user_identifier] RFC 6793 defined 4-byte AS number.",
            "x-f5xc-description-medium": "Exclusive with [http_header ip_prefix ipv6_prefix user_identifier] RFC 6793 defined 4-byte AS number.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 401308,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_header",
              "ip_prefix",
              "ipv6_prefix",
              "user_identifier"
            ]
          },
          "bot_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "skip_processing",
              "waf_skip_processing"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "title": "expiration timestamp",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafHttpHeaderMatcherList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "as_number",
              "ip_prefix",
              "ipv6_prefix",
              "user_identifier"
            ]
          },
          "ip_prefix": {
            "type": "string",
            "description": "Exclusive with [as_number http_header ipv6_prefix user_identifier]\nIPv4 prefix string.",
            "title": "ip prefix",
            "x-displayname": "IPv4 Prefix.",
            "x-ves-example": "192.0.2.0/24.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4_prefix": "true"
            },
            "x-f5xc-example": "192.0.2.0/24",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4_prefix": "true"
            },
            "x-f5xc-description-short": "Exclusive with [as_number http_header ipv6_prefix user_identifier] IPv4 prefix string.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "as_number",
              "http_header",
              "ipv6_prefix",
              "user_identifier"
            ]
          },
          "ipv6_prefix": {
            "type": "string",
            "description": "Exclusive with [as_number http_header ip_prefix user_identifier]\nIPv6 prefix string.",
            "title": "ipv6 prefix",
            "x-displayname": "IPv6 Prefix.",
            "x-ves-example": "2001::1/64.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv6_prefix": "true"
            },
            "x-f5xc-example": "2001::1/64",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv6_prefix": "true"
            },
            "x-f5xc-description-short": "Exclusive with [as_number http_header ip_prefix user_identifier] IPv6 prefix string.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "as_number",
              "http_header",
              "ip_prefix",
              "user_identifier"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_skip_processing",
              "waf_skip_processing"
            ]
          },
          "user_identifier": {
            "type": "string",
            "description": "Exclusive with [as_number http_header ip_prefix ipv6_prefix]\nIdentify user based on user identifier. User identifier value needs to be copied from security event.",
            "title": "user identifier",
            "maxLength": 256,
            "x-displayname": "User Identifier.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [as_number http_header ip_prefix ipv6_prefix] Identify user based on user identifier.",
            "x-f5xc-description-medium": "Exclusive with [as_number http_header ip_prefix ipv6_prefix] Identify user based on user identifier. User identifier value needs to be copied from security event.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "as_number",
              "http_header",
              "ip_prefix",
              "ipv6_prefix"
            ]
          },
          "waf_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_skip_processing",
              "skip_processing"
            ]
          }
        },
        "x-f5xc-description-short": "Simple client source rule specifies the sources to be blocked or trusted (skip WAF).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafSimpleClientSrcRule",
          "required_fields": [
            "actions"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"actions\": [\n    \"SKIP_PROCESSING_WAF\"\n  ]\n}",
          "example_yaml": "actions:\n- SKIP_PROCESSING_WAF"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafValidationPropertySetting__ves_io_schema_app_security": {
        "type": "object",
        "description": "Custom property validation settings.",
        "title": "Validation Property settings",
        "x-displayname": "Validation Property Settings.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ValidationPropertySetting",
        "properties": {
          "queryParameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafValidationSettingForQueryParameters__ves_io_schema_app_security"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for queryParameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafValidationPropertySetting",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafValidationSettingForQueryParameters__ves_io_schema_app_security": {
        "type": "object",
        "description": "Custom settings for query parameters validation.",
        "title": "Validation Settings For Query Parameters",
        "x-displayname": "Validation Settings For Query Parameters.",
        "x-ves-oneof-field-additional_parameters_choice": "[\"allow_additional_parameters\",\"disallow_additional_parameters\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ValidationSettingForQueryParameters",
        "properties": {
          "allow_additional_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow additional parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disallow_additional_parameters"
            ]
          },
          "disallow_additional_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disallow additional parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_additional_parameters"
            ]
          }
        },
        "x-f5xc-description-short": "Custom settings for query parameters validation.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafValidationSettingForQueryParameters",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "http_loadbalancerBodySectionMaskingOptions": {
        "type": "object",
        "description": "OPTIONS for HTTP Body Masking.",
        "title": "Body Section Masking Options",
        "x-displayname": "Body Section Masking OPTIONS.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.BodySectionMaskingOptions",
        "properties": {
          "fields": {
            "type": "array",
            "description": "List of JSON Path field values. Use square brackets with an underscore [_] to indicate array elements (e.g., person.emails[_]). To reference JSON keys that contain spaces, enclose the entire path in double quotes. For example: \"person.first name\".",
            "title": "Field Values",
            "minItems": 1,
            "maxItems": 16,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Values",
            "x-ves-example": "['user.email', 'credit_card']",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.json_path": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['user.email', 'credit_card']",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.json_path": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of JSON Path field values. Use square brackets with an underscore [_] to indicate array elements (e.g., person.emails[_]).",
            "x-f5xc-description-medium": "List of JSON Path field values. Use square brackets with an underscore [_] to indicate array elements (e.g., person.emails[_]). To reference JSON keys that contain spaces, enclose the entire path in double quotes.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerBodySectionMaskingOptions",
          "required_fields": [
            "fields"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"fields\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "fields:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerSensitiveDataTypes__ves_io_schema_app_security": {
        "type": "object",
        "description": "Settings to mask sensitive data in request/response payload.",
        "title": "Sensitive Data Types",
        "x-displayname": "Sensitive Data Types.",
        "x-ves-oneof-field-masking_mode_choice": "[\"mask\",\"report\"]",
        "x-ves-oneof-field-type_condition_type_choice": "[\"api_endpoint\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.SensitiveDataTypes",
        "properties": {
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointDetails"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "body": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerBodySectionMaskingOptions"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mask": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "report"
            ]
          },
          "report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mask"
            ]
          }
        },
        "x-f5xc-description-short": "Settings to mask sensitive data in request/response payload.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerSensitiveDataTypes",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "ioschemaHeaderMatcherType": {
        "type": "object",
        "description": "Header match is done using the name of the header and its value.\nThe value match is done using one of the following\nregex match on value\nexact match of value\npresence of header\n\nHeader Match can also be inverse of above, which be used to check\nmissing header or\nnon-matching value.",
        "title": "HeaderMatcherType",
        "x-displayname": "Header to Match.",
        "x-ves-oneof-field-value_match": "[\"exact\",\"presence\",\"regex\"]",
        "x-ves-proto-message": "ves.io.schema.HeaderMatcherType",
        "properties": {
          "exact": {
            "type": "string",
            "description": "Exclusive with [presence regex]\nHeader value to match exactly.",
            "title": "exact",
            "maxLength": 256,
            "x-displayname": "Exact",
            "x-ves-example": "Application/JSON.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.not_empty": "true"
            },
            "x-f5xc-example": "application/json",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.not_empty": "true"
            },
            "x-f5xc-description-short": "Exclusive with [presence regex] Header value to match exactly.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "presence",
              "regex"
            ]
          },
          "invert_match": {
            "type": "boolean",
            "description": "Invert the result of the match to detect missing header or non-matching value.",
            "title": "invert_match",
            "format": "boolean",
            "x-displayname": "NOT of match.",
            "x-f5xc-description-short": "Invert the result of the match to detect missing header or non-matching value.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the header.",
            "title": "name",
            "minLength": 1,
            "maxLength": 63,
            "x-displayname": "Name",
            "x-ves-example": "Content-Type.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-example": "Content-Type",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 63,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256,
                "min": 1
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "presence": {
            "type": "boolean",
            "description": "Exclusive with [exact regex]\nIf true, check for presence of header.",
            "title": "presence",
            "format": "boolean",
            "x-displayname": "Presence",
            "x-f5xc-description-short": "Exclusive with [exact regex] If true, check for presence of header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact",
              "regex"
            ]
          },
          "regex": {
            "type": "string",
            "description": "Exclusive with [exact presence]\nRegex match of the header value in re2 format.",
            "title": "regex",
            "maxLength": 256,
            "x-displayname": "Regex",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.not_empty": "true",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.not_empty": "true",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-description-short": "Exclusive with [exact presence] Regex match of the header value in re2 format.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "byteLength": {
                "max": 256
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact",
              "presence"
            ]
          }
        },
        "x-f5xc-description-short": "Header match is done using the name of the header and its value.",
        "x-f5xc-description-medium": "Header match is done using the name of the header and its value. The value match is done using one of the following regex match on value exact match of value presence of header Header Match can also be inverse of above, which be used to check missing header or non-matching value.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ioschemaHeaderMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"Content-Type\"\n}",
          "example_yaml": "name: Content-Type"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ioschemaObjectRefType": {
        "type": "object",
        "description": "This type establishes a 'direct reference' from one object(the referrer) to another(the referred).\nSuch a reference is in form of tenant/namespace/name for public API and Uid for private API\nThis type of reference is called direct because the relation is explicit and concrete (as opposed\nto selector reference which builds a group based on labels of selectee objects)",
        "title": "ObjectRefType",
        "x-displayname": "Object reference.",
        "x-ves-proto-message": "ves.io.schema.ObjectRefType",
        "properties": {
          "kind": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen kind will hold the referred object's kind (e.g. \"route\")",
            "title": "kind",
            "x-displayname": "Kind",
            "x-ves-example": "Virtual_site.",
            "x-f5xc-example": "virtual_site",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object's kind (e.g. \"route\")",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then kind will hold the referred object's kind (e.g. \"route\").",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "readOnly": true,
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "name": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen name will hold the referred object's(e.g. Route's) name.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Contactus-route.",
            "x-f5xc-example": "contactus-route",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 6,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "namespace": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen namespace will hold the referred object's(e.g. Route's) namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "tenant": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen tenant will hold the referred object's(e.g. Route's) tenant.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "readOnly": true,
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen uid will hold the referred object's(e.g. Route's) uid.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-0df41b679859.",
            "x-f5xc-example": "00000000-0000-4000-8000-0df41b679859",
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then uid will hold the referred object's(e.g. Route's) uid.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "readOnly": true,
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Type establishes a 'direct reference' from one object(the referrer) to another(the referred).",
        "x-f5xc-description-medium": "Type establishes a 'direct reference' from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name for public API and Uid for private API This type of reference is called direct because the relation is explicit and concrete (as opposed to selector...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ioschemaObjectRefType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "metricsSecurityEventsCounter": {
        "type": "object",
        "description": "SecurityEventsCounter contains the timeseries data of security events counter.",
        "title": "Security Events Counter",
        "x-displayname": "Security Events Counter.",
        "x-ves-proto-message": "ves.io.schema.app_security.metrics.SecurityEventsCounter",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/metricsSecurityEventsId"
              }
            ],
            "x-f5xc-example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metric": {
            "type": "array",
            "description": "List of metric values.",
            "title": "Metric Values",
            "items": {
              "$ref": "#/components/schemas/metricsSecurityMetricValue"
            },
            "x-displayname": "Metric Values.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "SecurityEventsCounter contains the timeseries data of security events counter.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for metricsSecurityEventsCounter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "metricsSecurityEventsId": {
        "type": "object",
        "description": "SecurityEventsId uniquely identifies an entry in the response for security events metrics query.\nSecurity events counter is aggregated based on the MetricLabel specified in the group_by field in the request.\nTherefore, only the fields that corresponds to the MetricLabel in the group_by will have non-empty\nvalue in the response.",
        "title": "SecurityEventsId",
        "x-displayname": "Security Events ID.",
        "x-ves-proto-message": "ves.io.schema.app_security.metrics.SecurityEventsId",
        "properties": {
          "namespace": {
            "type": "string",
            "description": "Namespace for which the security event was generated.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app-namespace-1.",
            "x-f5xc-example": "blogging-app-namespace-1",
            "x-f5xc-description-short": "Namespace for which the security event was generated.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "sec_event_type": {
            "type": "string",
            "description": "Event or occurrence data",
            "title": "Security Event Type",
            "x-displayname": "Security Event Type.",
            "x-ves-example": "WAF",
            "x-f5xc-example": "WAF",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "src_instance": {
            "type": "string",
            "description": "Instance or deployment identifier",
            "title": "Source Instance",
            "x-displayname": "Source Instance.",
            "x-ves-example": "IN",
            "x-f5xc-example": "IN",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "src_site": {
            "type": "string",
            "description": "Site or location identifier",
            "title": "Source Site",
            "x-displayname": "Source Site.",
            "x-ves-example": "Greatblogs-CE.",
            "x-f5xc-example": "greatblogs-ce",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "vh_name": {
            "type": "string",
            "description": "Human-readable name for the resource",
            "title": "Virtual Host",
            "x-displayname": "Virtual Host.",
            "x-ves-example": "Greatblogs-vhost.",
            "x-f5xc-example": "greatblogs-vhost",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "SecurityEventsId uniquely identifies an entry in the response for security events metrics query.",
        "x-f5xc-description-medium": "SecurityEventsId uniquely identifies an entry in the response for security events metrics query. Security events counter is aggregated based on the MetricLabel specified in the group_by field in the request. Therefore, only the fields that corresponds to the MetricLabel in the group_by will have...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for metricsSecurityEventsId",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "metricsSecurityMetricLabel": {
        "type": "string",
        "description": "Labels in the security events metrics.\n\nSecurity events metric can be sliced and diced based\non one or more labels listed below.",
        "enum": [
          "NAMESPACE",
          "VH_NAME",
          "SEC_EVENT_TYPE",
          "SRC_SITE",
          "SRC_INSTANCE"
        ],
        "default": "NAMESPACE",
        "x-displayname": "Security Events Metric Labels.",
        "x-ves-proto-enum": "ves.io.schema.app_security.metrics.SecurityMetricLabel",
        "x-f5xc-description-short": "Labels in the security events metrics. Security events metric can be sliced and diced based on one or more labels listed below.",
        "x-f5xc-description-medium": "Labels in the security events metrics. Security events metric can be sliced and diced based on one or more labels listed below.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for metricsSecurityMetricLabel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"NAMESPACE\"",
          "example_yaml": "NAMESPACE\n..."
        },
        "x-f5xc-cli-domain": "label",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "metricsSecurityMetricLabelFilter": {
        "type": "object",
        "description": "Label based filtering for Security Events metrics.\n\nSecurity Events metrics are tagged with labels mentioned in MetricLabel.\nMetric label filter can be specified to query specific metrics based on label match.",
        "x-displayname": "Security Events Metric Label Filter.",
        "x-ves-proto-message": "ves.io.schema.app_security.metrics.SecurityMetricLabelFilter",
        "properties": {
          "label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/metricsSecurityMetricLabel"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "op": {
            "allOf": [
              {
                "$ref": "#/components/schemas/metricsSecurityMetricLabelOp"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Value to be compared with.",
            "title": "Value",
            "x-displayname": "Value",
            "x-ves-example": "Blogging-app-namespace-1.",
            "x-f5xc-example": "blogging-app-namespace-1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Label based filtering for Security Events metrics. Security Events metrics are tagged with labels mentioned in MetricLabel.",
        "x-f5xc-description-medium": "Label based filtering for Security Events metrics. Security Events metrics are tagged with labels mentioned in MetricLabel. Metric label filter can be specified to query specific metrics based on label match.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for metricsSecurityMetricLabelFilter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "label",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "metricsSecurityMetricLabelOp": {
        "type": "string",
        "description": "The operator to use when querying Security Events metrics with labels.",
        "title": "Security Events Metric Label Operator",
        "enum": [
          "EQ",
          "NEQ"
        ],
        "default": "EQ",
        "x-displayname": "Security Events Metric Label Operator.",
        "x-ves-proto-enum": "ves.io.schema.app_security.metrics.SecurityMetricLabelOp",
        "x-f5xc-description-short": "The operator to use when querying Security Events metrics with labels.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for metricsSecurityMetricLabelOp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"EQ\"",
          "example_yaml": "EQ\n..."
        },
        "x-f5xc-cli-domain": "label",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "metricsSecurityMetricValue": {
        "type": "object",
        "description": "Value returned for a Security Events Metrics query.",
        "title": "Metric Value",
        "x-displayname": "Metric Value.",
        "x-ves-proto-message": "ves.io.schema.app_security.metrics.SecurityMetricValue",
        "properties": {
          "timestamp": {
            "type": "number",
            "description": "Timestamp",
            "title": "Timestamp",
            "format": "double",
            "x-displayname": "Timestamp",
            "x-ves-example": "1570007981.",
            "x-f5xc-example": "1570007981",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Configuration parameter for value",
            "title": "Value",
            "x-displayname": "Value",
            "x-ves-example": "15",
            "x-f5xc-example": "15",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Value returned for a Security Events Metrics query.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for metricsSecurityMetricValue",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyAppFirewallAttackTypeContext": {
        "type": "object",
        "description": "App Firewall Attack Type context changes to be applied for this request.",
        "title": "App Firewall Attack Type Context",
        "x-displayname": "App Firewall Attack Type Context.",
        "x-ves-proto-message": "ves.io.schema.policy.AppFirewallAttackTypeContext",
        "properties": {
          "context": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyDetectionContext"
              }
            ],
            "x-f5xc-description-medium": "Exclusion scope. Use CONTEXT_PARAMETER with context_name for one parameter, CONTEXT_COOKIE for one cookie, or CONTEXT_ANY only for an intentionally global scope.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Exclusion scope. Use CONTEXT_PARAMETER with context_name for one parameter, CONTEXT_COOKIE for one cookie, or CONTEXT_ANY only for an intentionally global scope."
          },
          "context_name": {
            "type": "string",
            "description": "Parameter, cookie, or header name selected by context. For a parameter-scoped WAF exception, set context to CONTEXT_PARAMETER and name only the intended parameter.",
            "title": "Context Name",
            "maxLength": 128,
            "x-displayname": "Context Name.",
            "x-ves-example": "Example: user-agent for Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Parameter, cookie, or header name selected by context.",
            "x-f5xc-description-medium": "Parameter, cookie, or header name selected by context. For a parameter-scoped WAF exception, set context to CONTEXT_PARAMETER and name only the intended parameter.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exclude_attack_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAttackType"
              }
            ],
            "x-f5xc-description-short": "Attack-type enum excluded in this context, for example ATTACK_TYPE_CROSS_SITE_SCRIPTING.",
            "x-f5xc-description-medium": "Attack-type enum excluded in this context, for example ATTACK_TYPE_CROSS_SITE_SCRIPTING. Other attack types remain enforced.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Attack-type enum excluded in this context, for example ATTACK_TYPE_CROSS_SITE_SCRIPTING. Other attack types remain enforced."
          }
        },
        "x-f5xc-description-short": "App Firewall Attack Type context changes to be applied for this request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyAppFirewallAttackTypeContext",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyAppFirewallDetectionControl": {
        "type": "object",
        "description": "Define the list of Signature IDs, Violations, Attack Types and Bot Names that should be excluded from triggering on the defined match criteria.",
        "title": "App Firewall Detection Control",
        "x-displayname": "App Firewall Detection Control.",
        "x-ves-proto-message": "ves.io.schema.policy.AppFirewallDetectionControl",
        "properties": {
          "exclude_attack_type_contexts": {
            "type": "array",
            "description": "Exclude an entire attack type only in the named context. For migrated per-parameter exceptions, prefer this over signature-ID exclusions because one payload can trigger several signatures; unrelated parameters and attack types remain protected.",
            "title": "Exclude Attack Types Contexts",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyAppFirewallAttackTypeContext"
            },
            "x-displayname": "Attack Types.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Exclude an entire attack type only in the named context.",
            "x-f5xc-description-medium": "Exclude an entire attack type only in the named context. For migrated per-parameter exceptions, prefer this over signature-ID exclusions because one payload can trigger several signatures; unrelated parameters and attack types remain protected.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exclude_bot_name_contexts": {
            "type": "array",
            "description": "Bot Names to be excluded for the defined match criteria.",
            "title": "Exclude Bot Names Contexts",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyBotNameContext"
            },
            "x-displayname": "Bot Names",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Bot Names to be excluded for the defined match criteria.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exclude_signature_contexts": {
            "type": "array",
            "description": "Signature IDs to be excluded for the defined match criteria.",
            "title": "Exclude Signature Contexts",
            "maxItems": 1024,
            "items": {
              "$ref": "#/components/schemas/policyAppFirewallSignatureContext"
            },
            "x-displayname": "Signature IDs.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1024",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1024",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Signature IDs to be excluded for the defined match criteria.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1024,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exclude_violation_contexts": {
            "type": "array",
            "description": "Violations to be excluded for the defined match criteria.",
            "title": "Exclude Violation Contexts",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyAppFirewallViolationContext"
            },
            "x-displayname": "Violations.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Violations to be excluded for the defined match criteria.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Define the list of Signature IDs, Violations, Attack Types and Bot Names that should be excluded from triggering on the defined match criteria.",
        "x-f5xc-description-medium": "Define the list of Signature IDs, Violations, Attack Types and Bot Names that should be excluded from triggering on the defined match criteria.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyAppFirewallDetectionControl",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyAppFirewallSignatureContext": {
        "type": "object",
        "description": "App Firewall signature context changes to be applied for this request.",
        "title": "App Firewall Signature Context",
        "x-displayname": "App Firewall Signature Context.",
        "x-ves-proto-message": "ves.io.schema.policy.AppFirewallSignatureContext",
        "properties": {
          "context": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyDetectionContext"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "context_name": {
            "type": "string",
            "description": "Relevant only for contexts: Header, Cookie and Parameter.\nName of the Context that the WAF Exclusion Rules will check.\nWildcard matching can be used by prefixing or suffixing the context name\nwith an wildcard asterisk (*).",
            "title": "Context Name",
            "maxLength": 128,
            "x-displayname": "Context Name.",
            "x-ves-example": "Example: user-agent for Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "exampleuser-agent for Header",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Relevant only for contexts: Header, Cookie and Parameter. Name of the Context that the WAF Exclusion Rules will check.",
            "x-f5xc-description-medium": "Relevant only for contexts: Header, Cookie and Parameter. Name of the Context that the WAF Exclusion Rules will check. Wildcard matching can be used by prefixing or suffixing the context name with an wildcard asterisk (*).",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "signature_id": {
            "type": "integer",
            "description": "The allowed values for signature ID are 0 and in the range of 200000001-299999999.\n0 implies that all signatures will be excluded for the specified context.",
            "title": "SignatureID",
            "format": "int64",
            "x-displayname": "SignatureID.",
            "x-ves-example": "10000001",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "299999999"
            },
            "x-f5xc-example": "10000001",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "299999999"
            },
            "x-f5xc-description-short": "The allowed values for signature ID are 0 and in the range of 200000001-299999999. 0 implies that all signatures will be excluded for the...",
            "x-f5xc-description-medium": "The allowed values for signature ID are 0 and in the range of 200000001-299999999. 0 implies that all signatures will be excluded for the specified context.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 299999999,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "App Firewall signature context changes to be applied for this request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyAppFirewallSignatureContext",
          "required_fields": [
            "signature_id"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"signature_id\": 0\n}",
          "example_yaml": "signature_id: 0"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyAppFirewallViolationContext": {
        "type": "object",
        "description": "App Firewall violation context changes to be applied for this request.",
        "title": "App Firewall Violation Context",
        "x-displayname": "App Firewall Violation Context.",
        "x-ves-proto-message": "ves.io.schema.policy.AppFirewallViolationContext",
        "properties": {
          "context": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyDetectionContext"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "context_name": {
            "type": "string",
            "description": "Relevant only for contexts: Header, Cookie and Parameter.\nName of the Context that the WAF Exclusion Rules will check.\nWildcard matching can be used by prefixing or suffixing the context name\nwith an wildcard asterisk (*).",
            "title": "Context Name",
            "maxLength": 128,
            "x-displayname": "Context Name.",
            "x-ves-example": "Example: user-agent for Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "exampleuser-agent for Header",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Relevant only for contexts: Header, Cookie and Parameter. Name of the Context that the WAF Exclusion Rules will check.",
            "x-f5xc-description-medium": "Relevant only for contexts: Header, Cookie and Parameter. Name of the Context that the WAF Exclusion Rules will check. Wildcard matching can be used by prefixing or suffixing the context name with an wildcard asterisk (*).",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exclude_violation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_firewallAppFirewallViolationType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for exclude violation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "App Firewall violation context changes to be applied for this request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyAppFirewallViolationContext",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyAsnMatchList": {
        "type": "object",
        "description": "An unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy. It can be used to create the allow list only for DNS Load Balancer.",
        "title": "Asn Match List",
        "x-displayname": "ASN Match List.",
        "x-ves-proto-message": "ves.io.schema.policy.AsnMatchList",
        "properties": {
          "as_numbers": {
            "type": "array",
            "description": "An unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy. It can be used to create the allow list only for DNS Load Balancer.",
            "title": "as numbers",
            "minItems": 1,
            "maxItems": 16,
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "x-displayname": "AS Numbers.",
            "x-ves-example": "[713, 7932, 847325, 4683, 15269, 1000001]",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[713, 7932, 847325, 4683, 15269, 1000001]",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy.",
            "x-f5xc-description-medium": "Unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy. It can be used to create the allow list only for DNS Load Balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy.",
        "x-f5xc-description-medium": "Unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy. It can be used to create the allow list only for DNS Load Balancer.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyAsnMatchList",
          "required_fields": [
            "as_numbers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"as_numbers\": [\n    0\n  ]\n}",
          "example_yaml": "as_numbers:\n- 0"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyAsnMatcherType": {
        "type": "object",
        "description": "Match any AS number contained in the list of bgp_asn_sets.",
        "title": "asn matcher type",
        "x-displayname": "ASN Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.AsnMatcherType",
        "properties": {
          "asn_sets": {
            "type": "array",
            "description": "A list of references to bgp_asn_set objects.",
            "title": "asn_sets",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "BGP ASN Sets.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "List of references to bgp_asn_set objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Match any AS number contained in the list of bgp_asn_sets.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyAsnMatcherType",
          "required_fields": [
            "asn_sets"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"asn_sets\": [\n    {}\n  ]\n}",
          "example_yaml": "asn_sets:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyBotNameContext": {
        "type": "object",
        "description": "Specifies bot to be excluded by its name.",
        "title": "Bot Name Context",
        "x-displayname": "Bot Name",
        "x-ves-proto-message": "ves.io.schema.policy.BotNameContext",
        "properties": {
          "bot_name": {
            "type": "string",
            "description": "Human-readable name for the resource",
            "title": "BotName",
            "x-displayname": "Bot Name",
            "x-ves-example": "Hydra",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "Hydra",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies bot to be excluded by its name.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyBotNameContext",
          "required_fields": [
            "bot_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"bot_name\": \"Hydra\"\n}",
          "example_yaml": "bot_name: Hydra"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyClientMatcher__ves_io_schema_app_security": {
        "type": "object",
        "description": "Client conditions for matching a rule.",
        "title": "Client Matcher",
        "x-displayname": "Client Matcher.",
        "x-ves-oneof-field-client_choice": "[\"any_client\",\"client_selector\",\"ip_threat_category_list\"]",
        "x-ves-oneof-field-ip_asn_choice": "[\"any_ip\",\"asn_list\",\"asn_matcher\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-proto-message": "ves.io.schema.policy.ClientMatcher",
        "properties": {
          "any_client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher",
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_matcher",
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_list",
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "ip_threat_category_list"
            ]
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_list",
              "asn_matcher",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_list",
              "asn_matcher",
              "ip_matcher"
            ]
          },
          "ip_threat_category_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyIPThreatCategoryListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_selector"
            ]
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyClientMatcher",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyCookieMatcherType__ves_io_schema_app_security": {
        "type": "object",
        "description": "A cookie matcher specifies the name of a single cookie and the criteria to match it. The input has a list of values for each\ncookie in the request.\nA cookie matcher can check for one of the following:\n* Presence or absence of the cookie\n* At least one of the values for the cookie in the request satisfies the MatcherType item.",
        "title": "CookieMatcherType",
        "x-displayname": "Cookie Matcher.",
        "x-ves-displayorder": "1,6,4",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.CookieMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert Match of the expression defined.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "A case-sensitive cookie name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "Cookie Name.",
            "x-ves-example": "Session",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Session",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Cookie matcher specifies the name of a single cookie and the criteria to match it.",
        "x-f5xc-description-medium": "Cookie matcher specifies the name of a single cookie and the criteria to match it. The input has a list of values for each cookie in the request. A cookie matcher can check for one of the following: * Presence or absence of the cookie * At least one of the values for the cookie in the request...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyCookieMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"Session\"\n}",
          "example_yaml": "name: Session"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyCountryCode": {
        "type": "string",
        "description": "ISO 3166 Aplpha-2 country codes.",
        "title": "CountryCode",
        "enum": [
          "COUNTRY_NONE",
          "COUNTRY_AD",
          "COUNTRY_AE",
          "COUNTRY_AF",
          "COUNTRY_AG",
          "COUNTRY_AI",
          "COUNTRY_AL",
          "COUNTRY_AM",
          "COUNTRY_AN",
          "COUNTRY_AO",
          "COUNTRY_AQ",
          "COUNTRY_AR",
          "COUNTRY_AS",
          "COUNTRY_AT",
          "COUNTRY_AU",
          "COUNTRY_AW",
          "COUNTRY_AX",
          "COUNTRY_AZ",
          "COUNTRY_BA",
          "COUNTRY_BB",
          "COUNTRY_BD",
          "COUNTRY_BE",
          "COUNTRY_BF",
          "COUNTRY_BG",
          "COUNTRY_BH",
          "COUNTRY_BI",
          "COUNTRY_BJ",
          "COUNTRY_BL",
          "COUNTRY_BM",
          "COUNTRY_BN",
          "COUNTRY_BO",
          "COUNTRY_BQ",
          "COUNTRY_BR",
          "COUNTRY_BS",
          "COUNTRY_BT",
          "COUNTRY_BV",
          "COUNTRY_BW",
          "COUNTRY_BY",
          "COUNTRY_BZ",
          "COUNTRY_CA",
          "COUNTRY_CC",
          "COUNTRY_CD",
          "COUNTRY_CF",
          "COUNTRY_CG",
          "COUNTRY_CH",
          "COUNTRY_CI",
          "COUNTRY_CK",
          "COUNTRY_CL",
          "COUNTRY_CM",
          "COUNTRY_CN",
          "COUNTRY_CO",
          "COUNTRY_CR",
          "COUNTRY_CS",
          "COUNTRY_CU",
          "COUNTRY_CV",
          "COUNTRY_CW",
          "COUNTRY_CX",
          "COUNTRY_CY",
          "COUNTRY_CZ",
          "COUNTRY_DE",
          "COUNTRY_DJ",
          "COUNTRY_DK",
          "COUNTRY_DM",
          "COUNTRY_DO",
          "COUNTRY_DZ",
          "COUNTRY_EC",
          "COUNTRY_EE",
          "COUNTRY_EG",
          "COUNTRY_EH",
          "COUNTRY_ER",
          "COUNTRY_ES",
          "COUNTRY_ET",
          "COUNTRY_FI",
          "COUNTRY_FJ",
          "COUNTRY_FK",
          "COUNTRY_FM",
          "COUNTRY_FO",
          "COUNTRY_FR",
          "COUNTRY_GA",
          "COUNTRY_GB",
          "COUNTRY_GD",
          "COUNTRY_GE",
          "COUNTRY_GF",
          "COUNTRY_GG",
          "COUNTRY_GH",
          "COUNTRY_GI",
          "COUNTRY_GL",
          "COUNTRY_GM",
          "COUNTRY_GN",
          "COUNTRY_GP",
          "COUNTRY_GQ",
          "COUNTRY_GR",
          "COUNTRY_GS",
          "COUNTRY_GT",
          "COUNTRY_GU",
          "COUNTRY_GW",
          "COUNTRY_GY",
          "COUNTRY_HK",
          "COUNTRY_HM",
          "COUNTRY_HN",
          "COUNTRY_HR",
          "COUNTRY_HT",
          "COUNTRY_HU",
          "COUNTRY_ID",
          "COUNTRY_IE",
          "COUNTRY_IL",
          "COUNTRY_IM",
          "COUNTRY_IN",
          "COUNTRY_IO",
          "COUNTRY_IQ",
          "COUNTRY_IR",
          "COUNTRY_IS",
          "COUNTRY_IT",
          "COUNTRY_JE",
          "COUNTRY_JM",
          "COUNTRY_JO",
          "COUNTRY_JP",
          "COUNTRY_KE",
          "COUNTRY_KG",
          "COUNTRY_KH",
          "COUNTRY_KI",
          "COUNTRY_KM",
          "COUNTRY_KN",
          "COUNTRY_KP",
          "COUNTRY_KR",
          "COUNTRY_KW",
          "COUNTRY_KY",
          "COUNTRY_KZ",
          "COUNTRY_LA",
          "COUNTRY_LB",
          "COUNTRY_LC",
          "COUNTRY_LI",
          "COUNTRY_LK",
          "COUNTRY_LR",
          "COUNTRY_LS",
          "COUNTRY_LT",
          "COUNTRY_LU",
          "COUNTRY_LV",
          "COUNTRY_LY",
          "COUNTRY_MA",
          "COUNTRY_MC",
          "COUNTRY_MD",
          "COUNTRY_ME",
          "COUNTRY_MF",
          "COUNTRY_MG",
          "COUNTRY_MH",
          "COUNTRY_MK",
          "COUNTRY_ML",
          "COUNTRY_MM",
          "COUNTRY_MN",
          "COUNTRY_MO",
          "COUNTRY_MP",
          "COUNTRY_MQ",
          "COUNTRY_MR",
          "COUNTRY_MS",
          "COUNTRY_MT",
          "COUNTRY_MU",
          "COUNTRY_MV",
          "COUNTRY_MW",
          "COUNTRY_MX",
          "COUNTRY_MY",
          "COUNTRY_MZ",
          "COUNTRY_NA",
          "COUNTRY_NC",
          "COUNTRY_NE",
          "COUNTRY_NF",
          "COUNTRY_NG",
          "COUNTRY_NI",
          "COUNTRY_NL",
          "COUNTRY_NO",
          "COUNTRY_NP",
          "COUNTRY_NR",
          "COUNTRY_NU",
          "COUNTRY_NZ",
          "COUNTRY_OM",
          "COUNTRY_PA",
          "COUNTRY_PE",
          "COUNTRY_PF",
          "COUNTRY_PG",
          "COUNTRY_PH",
          "COUNTRY_PK",
          "COUNTRY_PL",
          "COUNTRY_PM",
          "COUNTRY_PN",
          "COUNTRY_PR",
          "COUNTRY_PS",
          "COUNTRY_PT",
          "COUNTRY_PW",
          "COUNTRY_PY",
          "COUNTRY_QA",
          "COUNTRY_RE",
          "COUNTRY_RO",
          "COUNTRY_RS",
          "COUNTRY_RU",
          "COUNTRY_RW",
          "COUNTRY_SA",
          "COUNTRY_SB",
          "COUNTRY_SC",
          "COUNTRY_SD",
          "COUNTRY_SE",
          "COUNTRY_SG",
          "COUNTRY_SH",
          "COUNTRY_SI",
          "COUNTRY_SJ",
          "COUNTRY_SK",
          "COUNTRY_SL",
          "COUNTRY_SM",
          "COUNTRY_SN",
          "COUNTRY_SO",
          "COUNTRY_SR",
          "COUNTRY_SS",
          "COUNTRY_ST",
          "COUNTRY_SV",
          "COUNTRY_SX",
          "COUNTRY_SY",
          "COUNTRY_SZ",
          "COUNTRY_TC",
          "COUNTRY_TD",
          "COUNTRY_TF",
          "COUNTRY_TG",
          "COUNTRY_TH",
          "COUNTRY_TJ",
          "COUNTRY_TK",
          "COUNTRY_TL",
          "COUNTRY_TM",
          "COUNTRY_TN",
          "COUNTRY_TO",
          "COUNTRY_TR",
          "COUNTRY_TT",
          "COUNTRY_TV",
          "COUNTRY_TW",
          "COUNTRY_TZ",
          "COUNTRY_UA",
          "COUNTRY_UG",
          "COUNTRY_UM",
          "COUNTRY_US",
          "COUNTRY_UY",
          "COUNTRY_UZ",
          "COUNTRY_VA",
          "COUNTRY_VC",
          "COUNTRY_VE",
          "COUNTRY_VG",
          "COUNTRY_VI",
          "COUNTRY_VN",
          "COUNTRY_VU",
          "COUNTRY_WF",
          "COUNTRY_WS",
          "COUNTRY_XK",
          "COUNTRY_XT",
          "COUNTRY_YE",
          "COUNTRY_YT",
          "COUNTRY_ZA",
          "COUNTRY_ZM",
          "COUNTRY_ZW"
        ],
        "default": "COUNTRY_NONE",
        "x-displayname": "Country Code.",
        "x-ves-proto-enum": "ves.io.schema.policy.CountryCode",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyCountryCode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"COUNTRY_NONE\"",
          "example_yaml": "COUNTRY_NONE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyDetectionContext": {
        "type": "string",
        "description": "The available contexts for Exclusion rules.\n\n- CONTEXT_ANY: CONTEXT_ANY\n\nDetection will be excluded for all contexts.\n- CONTEXT_BODY: CONTEXT_BODY\n\nDetection will be excluded for the request body.\n- CONTEXT_REQUEST: CONTEXT_REQUEST\n\nDetection will be excluded for the request.\n- CONTEXT_RESPONSE: CONTEXT_RESPONSE\n\n- CONTEXT_PARAMETER: CONTEXT_PARAMETER\n\nDetection will be excluded for the parameters. The parameter name is required in the Context name field. If the field is left empty, the detection will be excluded for all parameters.\n- CONTEXT_HEADER: CONTEXT_HEADER\n\nDetection will be excluded for the headers. The header name is required in the Context name field. If the field is left empty, the detection will be excluded for all headers.\n- CONTEXT_COOKIE: CONTEXT_COOKIE\n\nDetection will be excluded for the cookies. The cookie name is required in the Context name field. If the field is left empty, the detection will be excluded for all cookies.\n- CONTEXT_URL: CONTEXT_URL\n\nDetection will be excluded for the request URL.\n- CONTEXT_URI: CONTEXT_URI.",
        "title": "Detection Context",
        "enum": [
          "CONTEXT_ANY",
          "CONTEXT_BODY",
          "CONTEXT_REQUEST",
          "CONTEXT_RESPONSE",
          "CONTEXT_PARAMETER",
          "CONTEXT_HEADER",
          "CONTEXT_COOKIE",
          "CONTEXT_URL",
          "CONTEXT_URI"
        ],
        "default": "CONTEXT_ANY",
        "x-displayname": "WAF Exclusion Context OPTIONS.",
        "x-ves-proto-enum": "ves.io.schema.policy.DetectionContext",
        "x-f5xc-description-short": "The available contexts for Exclusion rules. - CONTEXT_ANY: CONTEXT_ANY Detection will be excluded for all contexts. - CONTEXT_BODY: CONTEXT_BODY...",
        "x-f5xc-description-medium": "The available contexts for Exclusion rules. - CONTEXT_ANY: CONTEXT_ANY Detection will be excluded for all contexts. - CONTEXT_BODY: CONTEXT_BODY Detection will be excluded for the request body. - CONTEXT_REQUEST: CONTEXT_REQUEST Detection will be excluded for the request. - CONTEXT_RESPONSE...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyDetectionContext",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"CONTEXT_ANY\"",
          "example_yaml": "CONTEXT_ANY\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyHttpMethodMatcherType": {
        "type": "object",
        "description": "A HTTP method matcher specifies a list of methods to match an input HTTP method. The match is considered successful if the input method is a member of the list.\nThe result of the match based on the method list is inverted if invert_matcher is true.",
        "title": "HttpMethodMatcherType",
        "x-displayname": "HTTP Method Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.HttpMethodMatcherType",
        "properties": {
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Method Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "methods": {
            "type": "array",
            "description": "List of methods values to match against.",
            "title": "methods",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaHttpMethod"
            },
            "x-displayname": "Method List.",
            "x-ves-example": "['GET', 'POST', 'DELETE']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['GET', 'POST', 'DELETE']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of methods values to match against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "HTTP method matcher specifies a list of methods to match an input HTTP method.",
        "x-f5xc-description-medium": "HTTP method matcher specifies a list of methods to match an input HTTP method. The match is considered successful if the input method is a member of the list. The result of the match based on the method list is inverted if invert_matcher is true.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyHttpMethodMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyIPThreatCategory": {
        "type": "string",
        "description": "The IP threat categories to use when a policy based IP threat category is configured.\n\n- SPAM_SOURCES: SPAM_SOURCES\n\n- WINDOWS_EXPLOITS: WINDOWS_EXPLOITS\n\n- WEB_ATTACKS: WEB_ATTACKS\n\n- BOTNETS: BOTNETS\n\n- SCANNERS: SCANNERS\n\n- REPUTATION: REPUTATION\n\n- PHISHING: PHISHING\n\n- PROXY: PROXY\n\n- MOBILE_THREATS: MOBILE_THREATS\n\n- TOR_PROXY: TOR_PROXY\n\n- DENIAL_OF_SERVICE: DENIAL_OF_SERVICE\n\n- NETWORK: NETWORK.",
        "title": "IP Threat Category",
        "enum": [
          "SPAM_SOURCES",
          "WINDOWS_EXPLOITS",
          "WEB_ATTACKS",
          "BOTNETS",
          "SCANNERS",
          "REPUTATION",
          "PHISHING",
          "PROXY",
          "MOBILE_THREATS",
          "TOR_PROXY",
          "DENIAL_OF_SERVICE",
          "NETWORK"
        ],
        "default": "SPAM_SOURCES",
        "x-displayname": "IP Threat Category.",
        "x-ves-proto-enum": "ves.io.schema.policy.IPThreatCategory",
        "x-f5xc-description-short": "The IP threat categories to use when a policy based IP threat category is configured. - SPAM_SOURCES: SPAM_SOURCES - WINDOWS_EXPLOITS...",
        "x-f5xc-description-medium": "The IP threat categories to use when a policy based IP threat category is configured. - SPAM_SOURCES: SPAM_SOURCES - WINDOWS_EXPLOITS: WINDOWS_EXPLOITS - WEB_ATTACKS: WEB_ATTACKS - BOTNETS: BOTNETS - SCANNERS: SCANNERS - REPUTATION: REPUTATION - PHISHING: PHISHING - PROXY: PROXY ...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyIPThreatCategory",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"SPAM_SOURCES\"",
          "example_yaml": "SPAM_SOURCES\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyIpMatcherType": {
        "type": "object",
        "description": "Match any IP prefix contained in the list of ip_prefix_sets.\nThe result of the match is inverted if invert_matcher is true.",
        "title": "ip matcher type",
        "x-displayname": "IP Prefix Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.IpMatcherType",
        "properties": {
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert IP Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "prefix_sets": {
            "type": "array",
            "description": "A list of references to ip_prefix_set objects.",
            "title": "prefix_sets",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "IP Prefix Sets.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "List of references to ip_prefix_set objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Match any IP prefix contained in the list of ip_prefix_sets. The result of the match is inverted if invert_matcher is true.",
        "x-f5xc-description-medium": "Match any IP prefix contained in the list of ip_prefix_sets. The result of the match is inverted if invert_matcher is true.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyIpMatcherType",
          "required_fields": [
            "prefix_sets"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"prefix_sets\": [\n    {}\n  ]\n}",
          "example_yaml": "prefix_sets:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyJA4TlsFingerprintMatcherType": {
        "type": "object",
        "description": "An extended version of JA3 that includes additional fields for more comprehensive fingerprinting of\nSSL/TLS clients and potentially has a different structure and length.",
        "title": "JA4TlsFingerprintMatcherType",
        "x-displayname": "JA4 TLS Fingerprint Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.JA4TlsFingerprintMatcherType",
        "properties": {
          "exact_values": {
            "type": "array",
            "description": "A list of exact JA4 TLS fingerprint to match the input JA4 TLS fingerprint against.",
            "title": "exact values",
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "Exact Values.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "36",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "36",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact JA4 TLS fingerprint to match the input JA4 TLS fingerprint against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Extended version of JA3 that includes additional fields for more comprehensive fingerprinting of SSL/TLS clients and potentially has a different...",
        "x-f5xc-description-medium": "Extended version of JA3 that includes additional fields for more comprehensive fingerprinting of SSL/TLS clients and potentially has a different structure and length.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyJA4TlsFingerprintMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyJWTClaimMatcherType__ves_io_schema_app_security": {
        "type": "object",
        "description": "A JWT claim matcher specifies the name of a single JWT claim and the criteria for the input request to match it.\nThe input has a list of actual values for each JWT claim name in the JWT payload.\nA JWT claim matcher can check for one of the following:\n* Presence or absence of the JWT Claim in the input\n* At least one of the values for the JWT Claim in the input satisfies the MatcherType item.",
        "title": "JWTClaimMatcherType",
        "x-displayname": "JWT Claim Matcher.",
        "x-ves-displayorder": "1,2,6",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.JWTClaimMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "JWT claim name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "JWT Claim Name.",
            "x-ves-example": "User_id",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "user_id",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "JWT claim matcher specifies the name of a single JWT claim and the criteria for the input request to match it.",
        "x-f5xc-description-medium": "JWT claim matcher specifies the name of a single JWT claim and the criteria for the input request to match it. The input has a list of actual values for each JWT claim name in the JWT payload. A JWT claim matcher can check for one of the following: * Presence or absence of the JWT Claim in the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyJWTClaimMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"user_id\"\n}",
          "example_yaml": "name: user_id"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyKnownTlsFingerprintClass": {
        "type": "string",
        "description": "Specifies known TLS fingerprint classes\n\n- TLS_FINGERPRINT_NONE: TLS_FINGERPRINT_NONE\n\nNo TLS fingerprint\n- ANY_MALICIOUS_FINGERPRINT: ANY_MALICIOUS_FINGERPRINT\n\nTLS fingerprints known to be associated with malicious clients\n- ADWARE: ADWARE\n\nTLS fingerprints known to be associated with adware\n- ADWIND: ADWIND\n\nTLS fingerprints known to be associated with adwind\n- DRIDEX: DRIDEX\n\nTLS fingerprints known to be associated with dridex\n- GOOTKIT: GOOTKIT\n\nTLS fingerprints known to be associated with gootkit\n- GOZI: GOZI\n\nTLS fingerprints known to be associated with gozi\n- JBIFROST: JBIFROST\n\nTLS fingerprints known to be associated with jbifrost\n- QUAKBOT: QUAKBOT\n\nTLS fingerprints known to be associated with quakbot\n- RANSOMWARE: RANSOMWARE\n\nTLS fingerprints known to be associated with ransomware\n- TROLDESH: TROLDESH\n\nTLS fingerprints known to be associated with troldesh\n- TOFSEE: TOFSEE\n\nTLS fingerprints known to be associated with tofsee\n- TORRENTLOCKER: TORRENTLOCKER\n\nTLS fingerprints known to be associated with torrentlocker\n- TRICKBOT: TRICKBOT\n\nTLS fingerprints known to be associated with trickbot.",
        "title": "TLS known fingerprint class",
        "enum": [
          "TLS_FINGERPRINT_NONE",
          "ANY_MALICIOUS_FINGERPRINT",
          "ADWARE",
          "ADWIND",
          "DRIDEX",
          "GOOTKIT",
          "GOZI",
          "JBIFROST",
          "QUAKBOT",
          "RANSOMWARE",
          "TROLDESH",
          "TOFSEE",
          "TORRENTLOCKER",
          "TRICKBOT"
        ],
        "default": "TLS_FINGERPRINT_NONE",
        "x-displayname": "TLS known fingerprint class.",
        "x-ves-proto-enum": "ves.io.schema.policy.KnownTlsFingerprintClass",
        "x-f5xc-description-short": "Specifies known TLS fingerprint classes - TLS_FINGERPRINT_NONE: TLS_FINGERPRINT_NONE No TLS fingerprint - ANY_MALICIOUS_FINGERPRINT...",
        "x-f5xc-description-medium": "Specifies known TLS fingerprint classes - TLS_FINGERPRINT_NONE: TLS_FINGERPRINT_NONE No TLS fingerprint - ANY_MALICIOUS_FINGERPRINT: ANY_MALICIOUS_FINGERPRINT TLS fingerprints known to be associated with malicious clients - ADWARE: ADWARE TLS fingerprints known to be associated with adware ...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyKnownTlsFingerprintClass",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"TLS_FINGERPRINT_NONE\"",
          "example_yaml": "TLS_FINGERPRINT_NONE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyMatcherType": {
        "type": "object",
        "description": "A matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied. The set\nof supported match criteria includes a list of exact values and a list of regular expressions.",
        "title": "MatcherType",
        "x-displayname": "Matcher",
        "x-ves-proto-message": "ves.io.schema.policy.MatcherType",
        "properties": {
          "exact_values": {
            "type": "array",
            "description": "A list of exact values to match the input against.",
            "title": "exact values",
            "maxItems": 64,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Exact Values.",
            "x-ves-example": "['new york', 'london', 'sydney', 'tokyo', 'cairo']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['new york', 'london', 'sydney', 'tokyo', 'cairo']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact values to match the input against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "regex_values": {
            "type": "array",
            "description": "A list of regular expressions to match the input against.",
            "title": "regex values",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Regex Values.",
            "x-ves-example": "['^new .*$', 'san f.*', '.* del .*']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['^new .*$', 'san f.*', '.* del .*']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of regular expressions to match the input against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "transformers": {
            "type": "array",
            "description": "An ordered list of transformers (starting from index 0) to be applied to the path before matching.",
            "title": "transformers",
            "maxItems": 9,
            "items": {
              "$ref": "#/components/schemas/policyTransformer"
            },
            "x-displayname": "Transformers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "9",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "\"[BASE64_DECODE, LOWER_CASE]",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "9",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Ordered list of transformers (starting from index 0) to be applied to the path before matching.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 9,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied.",
        "x-f5xc-description-medium": "Matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied. The set of supported match criteria includes a list of exact values and a list of regular expressions.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyPrefixMatchList": {
        "type": "object",
        "description": "List of IP Prefix strings to match against.",
        "title": "IP Prefix Match List",
        "x-displayname": "IP Prefix Match List.",
        "x-ves-proto-message": "ves.io.schema.policy.PrefixMatchList",
        "properties": {
          "invert_match": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Match Result.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_prefixes": {
            "type": "array",
            "description": "List of IPv4 prefix strings.",
            "title": "ip prefixes",
            "maxItems": 128,
            "items": {
              "type": "string"
            },
            "x-displayname": "IPv4 Prefix List.",
            "x-ves-example": "192.0.2.0/24.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "192.0.2.0/24",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of IP Prefix strings to match against.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyPrefixMatchList",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyRequestMatcher__ves_io_schema_app_security": {
        "type": "object",
        "description": "Request conditions for matching a rule.",
        "title": "Request Matcher",
        "x-displayname": "Request Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.RequestMatcher",
        "properties": {
          "cookie_matchers": {
            "type": "array",
            "description": "A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.",
            "title": "cookie matchers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyCookieMatcherType__ves_io_schema_app_security"
            },
            "x-displayname": "Cookie Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all cookies that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_app_security"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "jwt_claims": {
            "type": "array",
            "description": "A list of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType\ninstances. The actual JWT claims values are extracted from the JWT payload as a list of strings.\nNote that all specified JWT claim predicates must evaluate to true.\nNote that this feature only works on LBs with JWT Validation feature enabled.",
            "title": "JWT claims",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyJWTClaimMatcherType__ves_io_schema_app_security"
            },
            "x-displayname": "JWT Claims.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for various JWT claims that need to match.",
            "x-f5xc-description-medium": "List of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType instances. The actual JWT claims values are extracted from the JWT payload as a list of strings.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "title": "query params",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_app_security"
            },
            "x-displayname": "HTTP Query Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyRequestMatcher",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policySimpleWafExclusionRule__ves_io_schema_app_security": {
        "type": "object",
        "description": "Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections.",
        "title": "SimpleWafExclusionRule",
        "x-displayname": "WAF Exclusion Rule.",
        "x-ves-displayorder": "10,3,16,7,14,9",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"exact_value\",\"suffix_value\"]",
        "x-ves-oneof-field-path_choice": "[\"any_path\",\"path_prefix\",\"path_regex\"]",
        "x-ves-oneof-field-waf_advanced_configuration": "[\"app_firewall_detection_control\",\"waf_skip_processing\"]",
        "x-ves-proto-message": "ves.io.schema.policy.SimpleWafExclusionRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact_value",
              "suffix_value"
            ]
          },
          "any_path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "path_prefix",
              "path_regex"
            ]
          },
          "app_firewall_detection_control": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAppFirewallDetectionControl"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall detection control.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "waf_skip_processing"
            ]
          },
          "exact_value": {
            "type": "string",
            "description": "Exclusive with [any_domain suffix_value]\nExact domain name.",
            "title": "exact value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Exact Value.",
            "x-ves-example": "abc.zyz.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "abc.zyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain suffix_value] Exact domain name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "suffix_value"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "title": "expiration timestamp",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "methods": {
            "type": "array",
            "description": "Methods to be matched.",
            "title": "Methods",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaHttpMethod"
            },
            "x-displayname": "Methods",
            "x-ves-example": "GET",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "GET",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path_prefix": {
            "type": "string",
            "description": "Exclusive with [any_path path_regex]\nPath prefix to match (e.g. The value / will match on all paths)",
            "title": "prefix",
            "maxLength": 256,
            "x-displayname": "Prefix",
            "x-ves-example": "/register/.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/register/",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_path path_regex] Path prefix to match (e.g. The value / will match on all paths)",
            "x-f5xc-description-medium": "Exclusive with [any_path path_regex] Path prefix to match (e.g. The value / will match on all paths).",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_path",
              "path_regex"
            ]
          },
          "path_regex": {
            "type": "string",
            "description": "Exclusive with [any_path path_prefix]\nDefine the regex for the path. For example, the regex ^/.*$ will match on all paths.",
            "title": "Path Regex",
            "maxLength": 256,
            "x-displayname": "Path Regex.",
            "x-ves-example": "/blog_id/.*.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-example": "/blog_id/.*",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_path path_prefix] Define the regex for the path. For example, the regex ^/.*$ will match on all paths.",
            "x-f5xc-description-medium": "Exclusive with [any_path path_prefix] Define the regex for the path. For example, the regex ^/.*$ will match on all paths.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_path",
              "path_prefix"
            ]
          },
          "suffix_value": {
            "type": "string",
            "description": "Exclusive with [any_domain exact_value]\nSuffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"",
            "title": "suffix value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Suffix Value.",
            "x-ves-example": "xyz.com",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "xyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-description-medium": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "exact_value"
            ]
          },
          "waf_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall_detection_control"
            ]
          }
        },
        "x-f5xc-description-short": "Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections.",
        "x-f5xc-description-medium": "Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policySimpleWafExclusionRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyTlsFingerprintMatcherType": {
        "type": "object",
        "description": "A TLS fingerprint matcher specifies multiple criteria for matching a TLS fingerprint. The set of supported positive match criteria includes a list of known\nclasses of TLS fingerprints and a list of exact values. The match is considered successful if either of these positive criteria are satisfied and the input\nfingerprint is not one of the excluded values.",
        "title": "TlsFingerprintMatcherType",
        "x-displayname": "TLS Fingerprint Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.TlsFingerprintMatcherType",
        "properties": {
          "classes": {
            "type": "array",
            "description": "A list of known classes of TLS fingerprints to match the input TLS JA3 fingerprint against.",
            "title": "classes",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyKnownTlsFingerprintClass"
            },
            "x-displayname": "TLS fingerprint classes.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "\"['ADWARE', 'TRICKBOT']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of known classes of TLS fingerprints to match the input TLS JA3 fingerprint against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exact_values": {
            "type": "array",
            "description": "A list of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against.",
            "title": "exact values",
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "Exact Values.",
            "x-ves-example": "['ed6dfd54b01ebe31b7a65b88abfa7297', '16efcf0e00504ddfedde13bfea997952', 'de364c46b0dfc283b5e38c79ceae3f8f']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['ed6dfd54b01ebe31b7a65b88abfa7297', '16efcf0e00504ddfedde13bfea997952', 'de364c46b0dfc283b5e38c79ceae3f8f']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "excluded_values": {
            "type": "array",
            "description": "A list of TLS JA3 fingerprints to be excluded when matching the input TLS JA3 fingerprint. This can be used to skip known false positives when using one\nor more known TLS fingerprint classes in the enclosing matcher.",
            "title": "excluded values",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Excluded Values.",
            "x-ves-example": "['fb00055a1196aeea8d1bc609885ba953', 'b386946a5a44d1ddcc843bc75336dfce']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['fb00055a1196aeea8d1bc609885ba953', 'b386946a5a44d1ddcc843bc75336dfce']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of TLS JA3 fingerprints to be excluded when matching the input TLS JA3 fingerprint.",
            "x-f5xc-description-medium": "List of TLS JA3 fingerprints to be excluded when matching the input TLS JA3 fingerprint. This can be used to skip known false positives when using one or more known TLS fingerprint classes in the enclosing matcher.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "TLS fingerprint matcher specifies multiple criteria for matching a TLS fingerprint.",
        "x-f5xc-description-medium": "TLS fingerprint matcher specifies multiple criteria for matching a TLS fingerprint. The set of supported positive match criteria includes a list of known classes of TLS fingerprints and a list of exact values. The match is considered successful if either of these positive criteria are satisfied...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyTlsFingerprintMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyTransformer": {
        "type": "string",
        "description": "Transformers to be applied on the part of the request before matching.\n\n- TRANSFORMER_NONE: transformer none\n\nNo transformers enabled\n- LOWER_CASE: lower case\n\nConvert string to lower case\n- UPPER_CASE: upper case\n\nConvert string to upper case\n- BASE64_DECODE: base64 decode\n\nDecode string assuming base64 encoding\n- NORMALIZE_PATH: normalize path\n\nNormalize URL path so that /a/b/../c will be transformed to /a/c\n- REMOVE_WHITESPACE: remove whitespace\n\nRemove whitespaces\n- URL_DECODE: URL decode\n\nDecode string assuming URL encoding as per rfc1738\n- TRIM_LEFT: trim left\n\nRemove whitespace from the left side of the input string\n- TRIM_RIGHT: trim right\n\nRemove whitespace from the right side of the input string\n- TRIM: trim\n\nRemove whitespace from the both sides of the input string.",
        "title": "Transformer",
        "enum": [
          "LOWER_CASE",
          "UPPER_CASE",
          "BASE64_DECODE",
          "NORMALIZE_PATH",
          "REMOVE_WHITESPACE",
          "URL_DECODE",
          "TRIM_LEFT",
          "TRIM_RIGHT",
          "TRIM"
        ],
        "x-displayname": "Transformer.",
        "x-ves-proto-enum": "ves.io.schema.policy.Transformer",
        "x-f5xc-description-short": "Transformers to be applied on the part of the request before matching. - TRANSFORMER_NONE: transformer none No transformers enabled - LOWER_CASE...",
        "x-f5xc-description-medium": "Transformers to be applied on the part of the request before matching. - TRANSFORMER_NONE: transformer none No transformers enabled - LOWER_CASE: lower case Convert string to lower case - UPPER_CASE: upper case Convert string to upper case - BASE64_DECODE: base64 decode Decode string assuming...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyTransformer",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"LOWER_CASE\"",
          "example_yaml": "LOWER_CASE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterRateLimitPeriodUnit": {
        "type": "string",
        "description": "Unit for the period per which the rate limit is applied.\n\n- SECOND: Second\n\nRate limit period unit is seconds\n- MINUTE: Minute\n\nRate limit period unit is minutes\n- HOUR: Hour\n\nRate limit period unit is hours\n- DAY: Day\n\nRate limit period unit is days.",
        "title": "RateLimitPeriodUnit",
        "enum": [
          "SECOND",
          "MINUTE",
          "HOUR"
        ],
        "default": "SECOND",
        "x-displayname": "Rate Limit Period Unit.",
        "x-ves-proto-enum": "ves.io.schema.rate_limiter.RateLimitPeriodUnit",
        "x-f5xc-description-short": "Unit for the period per which the rate limit is applied. - SECOND: Second Rate limit period unit is seconds - MINUTE: Minute Rate limit period...",
        "x-f5xc-description-medium": "Unit for the period per which the rate limit is applied. - SECOND: Second Rate limit period unit is seconds - MINUTE: Minute Rate limit period unit is minutes - HOUR: Hour Rate limit period unit is hours - DAY: Day Rate limit period unit is days.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterRateLimitPeriodUnit",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"SECOND\"",
          "example_yaml": "SECOND\n..."
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaEmpty": {
        "type": "object",
        "description": "This can be used for messages where no values are needed.",
        "title": "Empty",
        "x-displayname": "Empty",
        "x-ves-proto-message": "ves.io.schema.Empty",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaEmpty",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaHttpMethod": {
        "type": "string",
        "description": "Specifies the HTTP method used to access a resource.\n\nAny HTTP Method.",
        "title": "HttpMethod",
        "enum": [
          "ANY",
          "GET",
          "HEAD",
          "POST",
          "PUT",
          "DELETE",
          "CONNECT",
          "OPTIONS",
          "TRACE",
          "PATCH",
          "COPY"
        ],
        "default": "ANY",
        "x-displayname": "HTTP Method.",
        "x-ves-proto-enum": "ves.io.schema.HttpMethod",
        "x-f5xc-description-short": "Specifies the HTTP method used to access a resource. Any HTTP Method.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaHttpMethod",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"ANY\"",
          "example_yaml": "ANY\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaLabelSelectorType": {
        "type": "object",
        "description": "This type can be used to establish a 'selector reference' from one object(called selector) to\na set of other objects(called selectees) based on the value of expressions.\nA label selector is a label query over a set of resources. An empty label selector matches all objects.\nA null label selector matches no objects. Label selector is immutable.\nExpressions is a list of strings of label selection expression.\nEach string has \",\" separated values which are \"AND\" and all strings are logically \"OR\".\nBNF for expression string\n<selector-syntax> ::= <requirement> | <requirement> \",\" <selector-syntax>\n<requirement> ::= [!] KEY [ <set-based-restriction> | <exact-match-restriction> ]\n<set-based-restriction> ::= \"\" | <inclusion-exclusion> <value-set>\n<inclusion-exclusion> ::= <inclusion> | <exclusion>\n<exclusion> ::= \"notin\"\n<inclusion> ::= \"in\"\n<value-set> ::= \"(\" <values> \")\"\n<values> ::= VALUE | VALUE \",\" <values>\n<exact-match-restriction> ::= [\"=\"|\"==\"|\"!=\"] VALUE.",
        "title": "LabelSelectorType",
        "x-displayname": "Label Selector.",
        "x-ves-proto-message": "ves.io.schema.LabelSelectorType",
        "properties": {
          "expressions": {
            "type": "array",
            "description": "Expressions contains the Kubernetes style label expression for selections.",
            "title": "expressions",
            "maxItems": 1,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 4096
            },
            "x-displayname": "Selector Expression.",
            "x-ves-example": "Region in (us-west1, us-west2),tier in (staging)",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.k8s_label_selector": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "4096",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-example": "region in (us-west1, us-west2),tier in (staging)",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.k8s_label_selector": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "4096",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-description-short": "Expressions contains the Kubernetes style label expression for selections.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Type can be used to establish a 'selector reference' from one object(called selector) to a set of other objects(called selectees) based on the...",
        "x-f5xc-description-medium": "Type can be used to establish a 'selector reference' from one object(called selector) to a set of other objects(called selectees) based on the value of expressions. A label selector is a label query over a set of resources. An empty label selector matches all objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaLabelSelectorType",
          "required_fields": [
            "expressions"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"expressions\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "expressions:\n- value"
        },
        "x-f5xc-cli-domain": "label",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Label management is platform-level"
          },
          "classification": {
            "category": "infrastructure",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaMessageMetaType": {
        "type": "object",
        "description": "MessageMetaType is metadata (common attributes) of a message that only certain messages\nhave. This information is propagated to the metadata of a child object that gets created\nfrom the containing message during view processing.\nThe information in this type can be specified by user during create and replace APIs.",
        "title": "MessageMetaType",
        "x-displayname": "Message Metadata.",
        "x-ves-proto-message": "ves.io.schema.MessageMetaType",
        "properties": {
          "description": {
            "type": "string",
            "description": "Human readable description.",
            "title": "description",
            "maxLength": 256,
            "x-displayname": "Description.",
            "x-ves-example": "Virtual Host for Example Corp website.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "Virtual Host for Example Corp website",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "name": {
            "type": "string",
            "description": "This is the name of the message.\nThe value of name has to follow DNS-1035 format.",
            "title": "name",
            "minLength": 1,
            "x-displayname": "Name",
            "x-ves-example": "Example-corp-web.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.ves_object_name": "true"
            },
            "x-f5xc-example": "example-corp-web",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.ves_object_name": "true"
            },
            "x-f5xc-description-short": "Name of the message. The value of name has to follow DNS-1035 format.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 63,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "MessageMetaType is metadata (common attributes) of a message that only certain messages have.",
        "x-f5xc-description-medium": "MessageMetaType is metadata (common attributes) of a message that only certain messages have. This information is propagated to the metadata of a child object that gets created from the containing message during view processing. The information in this type can be specified by user during create...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaMessageMetaType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"example-corp-web\"\n}",
          "example_yaml": "name: example-corp-web"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaOpenApiValidationProperties": {
        "type": "string",
        "description": "List of required properties to validate against the OpenAPI spec\n\nValidate that all query parameters are according to the OpenAPI specification\nValidate that all path parameters are according to the OpenAPI specification\nValidate that the content type of the request is according to the OpenAPI specification\nValidate that all cookies are according to the OpenAPI specification\nValidate that all HTTP headers are according to the OpenAPI specification\nValidate that the body is according to the OpenAPI specification\nValidate that the security schema is according to the OpenAPI specification\nValidate that the response code is according to the OpenAPI specification.",
        "title": "OpenApiValidationProperties",
        "enum": [
          "PROPERTY_QUERY_PARAMETERS",
          "PROPERTY_PATH_PARAMETERS",
          "PROPERTY_CONTENT_TYPE",
          "PROPERTY_COOKIE_PARAMETERS",
          "PROPERTY_HTTP_HEADERS",
          "PROPERTY_HTTP_BODY",
          "PROPERTY_SECURITY_SCHEMA",
          "PROPERTY_RESPONSE_CODE"
        ],
        "default": "PROPERTY_QUERY_PARAMETERS",
        "x-displayname": "OpenAPI Validation Properties.",
        "x-ves-proto-enum": "ves.io.schema.OpenApiValidationProperties",
        "x-f5xc-description-short": "List of required properties to validate against the OpenAPI spec Validate that all query parameters are according to the OpenAPI specification...",
        "x-f5xc-description-medium": "List of required properties to validate against the OpenAPI spec Validate that all query parameters are according to the OpenAPI specification Validate that all path parameters are according to the OpenAPI specification Validate that the content type of the request is according to the OpenAPI...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaOpenApiValidationProperties",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"PROPERTY_QUERY_PARAMETERS\"",
          "example_yaml": "PROPERTY_QUERY_PARAMETERS\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaSortOrder": {
        "type": "string",
        "description": "Sort algorithm\n\nSort in descending order\nSort in ascending order.",
        "title": "SortOrder",
        "enum": [
          "DESCENDING",
          "ASCENDING"
        ],
        "default": "DESCENDING",
        "x-displayname": "Sort Order.",
        "x-ves-proto-enum": "ves.io.schema.SortOrder",
        "x-f5xc-description-short": "Sort algorithm Sort in descending order Sort in ascending order.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaSortOrder",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"DESCENDING\"",
          "example_yaml": "DESCENDING\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyHeaderMatcherType__ves_io_schema_app_security": {
        "type": "object",
        "description": "A header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each\nheader name in the original HTTP request.\nA header matcher can check for one of the following:\n* Presence or absence of the header in the input\n* At least one of the values for the header in the input satisfies the MatcherType item.",
        "title": "HeaderMatcherType",
        "x-displayname": "Header Matcher.",
        "x-ves-displayorder": "1,6,4",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.HeaderMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Header Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "A case-insensitive HTTP header name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "Header Name.",
            "x-ves-example": "Accept-Encoding.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Accept-Encoding",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Header matcher specifies the name of a single HTTP header and the criteria for the input request to match it.",
        "x-f5xc-description-medium": "Header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each header name in the original HTTP request. A header matcher can check for one of the following: * Presence or absence of the header in the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyHeaderMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"Accept-Encoding\"\n}",
          "example_yaml": "name: Accept-Encoding"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyIPThreatCategoryListType": {
        "type": "object",
        "description": "List of IP threat categories.",
        "title": "IP Threat Category List Type",
        "x-displayname": "IP Threat Category List Type.",
        "x-ves-proto-message": "ves.io.schema.policy.IPThreatCategoryListType",
        "properties": {
          "ip_threat_categories": {
            "type": "array",
            "description": "The IP threat categories is obtained from the list and is used to auto-generate equivalent label selection expressions.",
            "title": "IP Threat Categories",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/policyIPThreatCategory"
            },
            "x-displayname": "List of IP Threat Categories to choose.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The IP threat categories is obtained from the list and is used to auto-generate equivalent label selection expressions.",
            "x-f5xc-description-medium": "The IP threat categories is obtained from the list and is used to auto-generate equivalent label selection expressions.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyIPThreatCategoryListType",
          "required_fields": [
            "ip_threat_categories"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"ip_threat_categories\": [\n    \"SPAM_SOURCES\"\n  ]\n}",
          "example_yaml": "ip_threat_categories:\n- SPAM_SOURCES"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyQueryParameterMatcherType__ves_io_schema_app_security": {
        "type": "object",
        "description": "A query parameter matcher specifies the name of a single query parameter and the criteria for the input request to match it. The input has a list of actual\nvalues for each query parameter name in the original HTTP request.\nA query parameter matcher can check for one of the following:\n* Presence or absence of the query parameter in the input\n* At least one of the values for the query parameter in the input satisfies the MatcherType item.",
        "title": "QueryParameterMatcherType",
        "x-displayname": "Query Parameter Matcher.",
        "x-ves-displayorder": "1,6,4",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.QueryParameterMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Query Parameter Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "key": {
            "type": "string",
            "description": "A case-sensitive HTTP query parameter name.",
            "title": "key",
            "maxLength": 256,
            "x-displayname": "Query Parameter Name.",
            "x-ves-example": "Sourceid",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "sourceid",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Case-sensitive HTTP query parameter name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 7,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Query parameter matcher specifies the name of a single query parameter and the criteria for the input request to match it.",
        "x-f5xc-description-medium": "Query parameter matcher specifies the name of a single query parameter and the criteria for the input request to match it. The input has a list of actual values for each query parameter name in the original HTTP request. A query parameter matcher can check for one of the following: * Presence or...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyQueryParameterMatcherType",
          "required_fields": [
            "key"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"key\": \"sourceid\"\n}",
          "example_yaml": "key: sourceid"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaviewsObjectRefType": {
        "type": "object",
        "description": "This type establishes a direct reference from one object(the referrer) to another(the referred).\nSuch a reference is in form of tenant/namespace/name.",
        "title": "ObjectRefType",
        "x-displayname": "Object reference.",
        "x-ves-proto-message": "ves.io.schema.views.ObjectRefType",
        "properties": {
          "name": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen name will hold the referred object's(e.g. Route's) name.",
            "title": "name",
            "minLength": 1,
            "maxLength": 128,
            "x-displayname": "Name",
            "x-ves-example": "Contacts-route.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "128",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-example": "contacts-route",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "128",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then name will hold the referred object's(e.g. Route's) name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 128,
              "byteLength": {
                "max": 128,
                "min": 1
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen namespace will hold the referred object's(e.g. Route's) namespace.",
            "title": "namespace",
            "maxLength": 63,
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "64"
            },
            "x-f5xc-example": "ns1",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "64"
            },
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then namespace will hold the referred object's(e.g. Route's) namespace.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 64
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "tenant": {
            "type": "string",
            "description": "When a configuration object(e.g. Virtual_host) refers to another(e.g route)\nthen tenant will hold the referred object's(e.g. Route's) tenant.",
            "title": "tenant",
            "maxLength": 64,
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "64"
            },
            "x-f5xc-example": "example-corp",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "64"
            },
            "x-f5xc-description-short": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g.",
            "x-f5xc-description-medium": "When a configuration object(e.g. Virtual_host) refers to another(e.g route) then tenant will hold the referred object's(e.g. Route's) tenant.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 64,
              "byteLength": {
                "max": 64
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "readOnly": true,
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Type establishes a direct reference from one object(the referrer) to another(the referred).",
        "x-f5xc-description-medium": "Type establishes a direct reference from one object(the referrer) to another(the referred). Such a reference is in form of tenant/namespace/name.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaviewsObjectRefType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"contacts-route\"\n}",
          "example_yaml": "name: contacts-route"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "clusterCircuitBreaker": {
        "type": "object",
        "description": "CircuitBreaker provides a mechanism for watching failures in upstream connections or requests\nand if the failures reach a certain threshold, automatically fail subsequent requests which\nallows to apply back pressure on downstream quickly.",
        "title": "CircuitBreaker",
        "x-displayname": "Circuit Breaker.",
        "x-ves-displayorder": "1,2,3,4,5",
        "x-ves-proto-message": "ves.io.schema.cluster.CircuitBreaker",
        "properties": {
          "connection_limit": {
            "type": "integer",
            "description": "The maximum number of connections that loadbalancer will establish to all hosts in an upstream cluster.\nIn practice this is only applicable to TCP and HTTP/1.1 clusters since HTTP/2 uses a single connection to each host.\nRemove endpoint out of load balancing decision, if number of connections reach connection limit.",
            "title": "connection_limit",
            "format": "int64",
            "x-displayname": "Connection Limit.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-description-short": "The maximum number of connections that loadbalancer will establish to all hosts in an upstream cluster.",
            "x-f5xc-description-medium": "The maximum number of connections that loadbalancer will establish to all hosts in an upstream cluster. In practice this is only applicable to TCP and HTTP/1.1 clusters since HTTP/2 uses a single connection to each host. Remove endpoint out of load balancing decision, if number of connections...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 32768,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests": {
            "type": "integer",
            "description": "The maximum number of requests that can be outstanding to all hosts in a cluster at any given time.\nIn practice this is applicable to HTTP/2 clusters since HTTP/1.1 clusters are governed by the\nmaximum connections (connection_limit).\nRemove endpoint out of load balancing decision, if requests exceed this count.",
            "title": "max_requests",
            "format": "int64",
            "x-displayname": "Maximum Request Count.",
            "x-ves-example": "10",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-example": "10",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-description-short": "The maximum number of requests that can be outstanding to all hosts in a cluster at any given time.",
            "x-f5xc-description-medium": "The maximum number of requests that can be outstanding to all hosts in a cluster at any given time. In practice this is applicable to HTTP/2 clusters since HTTP/1.1 clusters are governed by the maximum connections (connection_limit). Remove endpoint out of load balancing decision, if requests...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 32768,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "pending_requests": {
            "type": "integer",
            "description": "The maximum number of requests that will be queued while waiting for a ready connection pool connection.\nSince HTTP/2 requests are sent over a single connection, this circuit breaker only comes into play as the\ninitial connection is created, as requests will be multiplexed immediately afterwards. For HTTP/1.1, requests\nare added to the list of pending requests whenever there aren’t enough upstream connections available to\nimmediately dispatch the request, so this circuit breaker will remain in play for the lifetime of the process.\nRemove endpoint out of load balancing decision, if pending request reach pending_request.",
            "title": "pending_requests",
            "format": "int64",
            "x-displayname": "Pending Requests.",
            "x-ves-example": "20",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-example": "20",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-description-short": "The maximum number of requests that will be queued while waiting for a ready connection pool connection.",
            "x-f5xc-description-medium": "The maximum number of requests that will be queued while waiting for a ready connection pool connection. Since HTTP/2 requests are sent over a single connection, this circuit breaker only comes into play as the initial connection is created, as requests will be multiplexed immediately...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 32768,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "priority": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRoutingPriority"
              }
            ],
            "x-f5xc-example": "10",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retries": {
            "type": "integer",
            "description": "The maximum number of retries that can be outstanding to all hosts in a cluster at any given time.\nRemove endpoint out of load balancing decision, if retries for request exceed this count.",
            "title": "retries",
            "format": "int64",
            "x-displayname": "Retry Count.",
            "x-ves-example": "10",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-example": "10",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-description-short": "The maximum number of retries that can be outstanding to all hosts in a cluster at any given time.",
            "x-f5xc-description-medium": "The maximum number of retries that can be outstanding to all hosts in a cluster at any given time. Remove endpoint out of load balancing decision, if retries for request exceed this count.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 32768,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "CircuitBreaker provides a mechanism for watching failures in upstream connections or requests and if the failures reach a certain threshold...",
        "x-f5xc-description-medium": "CircuitBreaker provides a mechanism for watching failures in upstream connections or requests and if the failures reach a certain threshold, automatically fail subsequent requests which allows to apply back pressure on downstream quickly.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterCircuitBreaker",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of cluster",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.cluster.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterCreateRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.cluster.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterCreateSpecType": {
        "type": "object",
        "description": "Create cluster will create the object in the storage backend for namespace metadata.namespace.",
        "title": "Create cluster",
        "x-displayname": "Create Cluster.",
        "x-ves-oneof-field-http_protocol_type": "[\"auto_http_config\",\"http1_config\",\"http2_options\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-panic_threshold_type": "[\"no_panic_threshold\",\"panic_threshold\"]",
        "x-ves-oneof-field-proxy_protocol_type": "[\"disable_proxy_protocol\",\"proxy_protocol_v1\",\"proxy_protocol_v2\"]",
        "x-ves-proto-message": "ves.io.schema.cluster.CreateSpecType",
        "properties": {
          "auto_http_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http1_config",
              "http2_options"
            ]
          },
          "circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterCircuitBreaker"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to endpoints in the cluster.\nThis is specified in milliseconds. The default value is 2 seconds.",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds. The default value is 2 seconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_subset": {
            "type": "object",
            "description": "List of key-value pairs that define default subset. This subset can be referred in fallback_policy\nwhich gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-displayname": "Default Subset.",
            "x-ves-example": "Key:value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-example": "key:value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-description-short": "List of key-value pairs that define default subset.",
            "x-f5xc-description-medium": "List of key-value pairs that define default subset. This subset can be referred in fallback_policy which gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_proxy_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable proxy protocol.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "proxy_protocol_v1",
              "proxy_protocol_v2"
            ]
          },
          "endpoint_selection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterEndpointSelectionPolicy"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "endpoint_subsets": {
            "type": "array",
            "description": "Cluster may be configured to divide its endpoints into subsets based on metadata\nattached to the endpoints. Routes may then specify the metadata that a endpoint must match in\norder to be selected by the load balancer.\n\nEndpoint_subsets is list of subsets for this cluster. Each entry in this list has definition for a subset\n(which is collection of keys)\n\nDuring routing, the route’s metadata match configuration is used to find a specific subset.\nIf there is a subset with the exact keys and values specified by the route, the subset is used\nfor load balancing. Otherwise, the fallback policy is used. The cluster’s subset configuration must,\ntherefore, contain a definition that has the same keys as a given route in order for subset load\nbalancing to occur.\n\nExample:\n\nRouteConfig\n\nroutes:\n- match:\n - headers: []\npath:\npath: /1.log\nquery_params: []\nrouteDestination:\ndestinations:\n - cluster:\n - kind: cluster.object\nuid: 00000000-0000-4000-8000-0b50b89d07a2\nendpointSubsets:\nsite: india\n\nEndpointConfig\n\nmetadata:\nlabels:\ndeployment: debug\nsite: india\nname: end-1\nuid: end-1\n\nClusterConfig\n\ngcSpec:\ndefaultSubset:\nstage: production\nfallbackPolicy: DEFAULT_SUBSET\nendpointSubsets:\n - keys:\n - site\n - keys:\n - stage\n - app\n\nAssume the below endpoints are defined and associated with the cluster.\n\nEndpoint Labels\n-------- ------\n\nep1 stage: production, site: india\nep2 stage: deployment, site: us\nep3 stage: production, app: hr\nep4 site: india\n\nThe following table describes some routes and the result of their application\nto the cluster. The subset definition for cluster is assumed to be same as given\nabove in the ClusterConfig section\n\nRouteMatch Criteria Subset Reason\n------------------- ------ ------\n\nsite: india ep1, ep4 Subset of endpoints selected\nsite: us ep2 Subset of endpoints selected\napp: hr ep1, ep3 Fallback: No subset selector for \"app\" alone\nstage: production, app: hr ep3 Subset of endpoints selected\nother: x ep1, ep3 Fallback: No subset selector for “other”\n(none) ep1, ep3 Fallback: No subset requested.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/clusterEndpointSubsetSelectorType"
            },
            "x-displayname": "Endpoint Subsets.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Endpoint groups based on metadata labels for traffic routing.",
            "x-f5xc-description-medium": "Configure endpoint groups based on metadata labels for traffic routing. Supports weighted distribution and session affinity across labeled endpoints.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "endpoints": {
            "type": "array",
            "description": "List of references to all endpoint objects that belong to this cluster.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Endpoints",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of endpoints for this cluster.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "fallback_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterSubsetFallbackPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "health_checks": {
            "type": "array",
            "description": "List of references to healthcheck object for this cluster.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Health Checks.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "Health check configuration for backend monitoring.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http1_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp1ProtocolOptions"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http2_options"
            ]
          },
          "http2_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp2ProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http2 options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http1_config"
            ]
          },
          "http_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 5 minutes.",
            "format": "int64",
            "x-displayname": "HTTP Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "loadbalancer_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterLoadbalancerAlgorithm"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for loadbalancer algorithm.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\n\nSets the maximum number of requests allowed per connection to the origin server.\nEnter a value >=1 to define the request limit per connection.",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_panic_threshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no panic threshold.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "panic_threshold"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "outlier_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterOutlierDetectionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outlier detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "panic_threshold": {
            "type": "integer",
            "description": "Exclusive with [no_panic_threshold]\n\nConfigure a threshold (percentage of unhealthy endpoints) below which\nall endpoints will be considered for loadbalancing ignoring its health status.",
            "format": "int64",
            "x-displayname": "Panic threshold.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-description-short": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for...",
            "x-f5xc-description-medium": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for loadbalancing ignoring its health status.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 100,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_panic_threshold"
            ]
          },
          "proxy_protocol_v1": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v1.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v2"
            ]
          },
          "proxy_protocol_v2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v2.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v1"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "upstream_conn_pool_reuse_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamConnPoolReuseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Create cluster will create the object in the storage backend for namespace metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a cluster",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.cluster.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterEndpointSelectionPolicy": {
        "type": "string",
        "description": "Policy for selection of endpoints from local site/remote site/both\n\nConsider both remote and local endpoints for load balancing\nLOCAL_ONLY: Consider only local endpoints for load balancing\nEnable this policy to load balance ONLY among locally discovered endpoints\nPrefer the local endpoints for load balancing. If local endpoints are not present\nremote endpoints will be considered.",
        "title": "EndpointSelectionPolicy",
        "enum": [
          "DISTRIBUTED",
          "LOCAL_ONLY",
          "LOCAL_PREFERRED"
        ],
        "default": "DISTRIBUTED",
        "x-displayname": "Endpoint Selection Policy.",
        "x-ves-proto-enum": "ves.io.schema.cluster.EndpointSelectionPolicy",
        "x-f5xc-description-short": "Policy for selection of endpoints from local site/remote site/both Consider both remote and local endpoints for load balancing LOCAL_ONLY...",
        "x-f5xc-description-medium": "Policy for selection of endpoints from local site/remote site/both Consider both remote and local endpoints for load balancing LOCAL_ONLY: Consider only local endpoints for load balancing Enable this policy to load balance ONLY among locally discovered endpoints Prefer the local endpoints for...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterEndpointSelectionPolicy",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"DISTRIBUTED\"",
          "example_yaml": "DISTRIBUTED\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterEndpointSubsetSelectorType": {
        "type": "object",
        "description": "Upstream cluster may be configured to divide its endpoints into subsets based on metadata\nattached to the endpoints. Routes may then specify the metadata that a endpoint must match in\norder to be selected by the load balancer.\nList of keys that define a cluster subset. Each endpoint that has a metadata value for all of\nthe keys in the definition is added to that subset. If no endpoint has all the keys, no subsets\nresult from the definition. A single endpoint may appear in multiple subsets if it matches\nmultiple definitions.",
        "title": "EndpointSubsetSelectorType",
        "x-displayname": "Endpoint Subset Selector.",
        "x-ves-proto-message": "ves.io.schema.cluster.EndpointSubsetSelectorType",
        "properties": {
          "keys": {
            "type": "array",
            "description": "List of keys that define a cluster subset class.",
            "title": "keys",
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "Keys",
            "x-ves-example": "Production.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "production",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of keys that define a cluster subset class.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Upstream cluster may be configured to divide its endpoints into subsets based on metadata attached to the endpoints.",
        "x-f5xc-description-medium": "Upstream cluster may be configured to divide its endpoints into subsets based on metadata attached to the endpoints. Routes may then specify the metadata that a endpoint must match in order to be selected by the load balancer. List of keys that define a cluster subset.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterEndpointSubsetSelectorType",
          "required_fields": [
            "keys"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"keys\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "keys:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read cluster",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.cluster.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/clusterStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterGetSpecType": {
        "type": "object",
        "description": "GET cluster will GET the object from the storage backend for namespace metadata.namespace.",
        "title": "Get cluster",
        "x-displayname": "GET Cluster.",
        "x-ves-oneof-field-http_protocol_type": "[\"auto_http_config\",\"http1_config\",\"http2_options\"]",
        "x-ves-oneof-field-lb_source_ip_persistence_choice": "[\"disable_lb_source_ip_persistence\",\"enable_lb_source_ip_persistence\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-panic_threshold_type": "[\"no_panic_threshold\",\"panic_threshold\"]",
        "x-ves-oneof-field-proxy_protocol_type": "[\"disable_proxy_protocol\",\"proxy_protocol_v1\",\"proxy_protocol_v2\"]",
        "x-ves-proto-message": "ves.io.schema.cluster.GetSpecType",
        "properties": {
          "auto_http_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http1_config",
              "http2_options"
            ]
          },
          "circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterCircuitBreaker"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to endpoints in the cluster.\nThis is specified in milliseconds. The default value is 2 seconds.",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds. The default value is 2 seconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_subset": {
            "type": "object",
            "description": "List of key-value pairs that define default subset. This subset can be referred in fallback_policy\nwhich gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-displayname": "Default Subset.",
            "x-ves-example": "Key:value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-example": "key:value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-description-short": "List of key-value pairs that define default subset.",
            "x-f5xc-description-medium": "List of key-value pairs that define default subset. This subset can be referred in fallback_policy which gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_lb_source_ip_persistence": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-wire-name": "disable_lb_source_ip_persistance",
            "description": "IP address configuration",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_lb_source_ip_persistence"
            ]
          },
          "disable_proxy_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable proxy protocol.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "proxy_protocol_v1",
              "proxy_protocol_v2"
            ]
          },
          "enable_lb_source_ip_persistence": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-wire-name": "enable_lb_source_ip_persistance",
            "description": "IP address configuration",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_lb_source_ip_persistence"
            ]
          },
          "endpoint_selection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterEndpointSelectionPolicy"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "endpoint_subsets": {
            "type": "array",
            "description": "Cluster may be configured to divide its endpoints into subsets based on metadata\nattached to the endpoints. Routes may then specify the metadata that a endpoint must match in\norder to be selected by the load balancer.\n\nEndpoint_subsets is list of subsets for this cluster. Each entry in this list has definition for a subset\n(which is collection of keys)\n\nDuring routing, the route’s metadata match configuration is used to find a specific subset.\nIf there is a subset with the exact keys and values specified by the route, the subset is used\nfor load balancing. Otherwise, the fallback policy is used. The cluster’s subset configuration must,\ntherefore, contain a definition that has the same keys as a given route in order for subset load\nbalancing to occur.\n\nExample:\n\nRouteConfig\n\nroutes:\n- match:\n - headers: []\npath:\npath: /1.log\nquery_params: []\nrouteDestination:\ndestinations:\n - cluster:\n - kind: cluster.object\nuid: 00000000-0000-4000-8000-0b50b89d07a2\nendpointSubsets:\nsite: india\n\nEndpointConfig\n\nmetadata:\nlabels:\ndeployment: debug\nsite: india\nname: end-1\nuid: end-1\n\nClusterConfig\n\ngcSpec:\ndefaultSubset:\nstage: production\nfallbackPolicy: DEFAULT_SUBSET\nendpointSubsets:\n - keys:\n - site\n - keys:\n - stage\n - app\n\nAssume the below endpoints are defined and associated with the cluster.\n\nEndpoint Labels\n-------- ------\n\nep1 stage: production, site: india\nep2 stage: deployment, site: us\nep3 stage: production, app: hr\nep4 site: india\n\nThe following table describes some routes and the result of their application\nto the cluster. The subset definition for cluster is assumed to be same as given\nabove in the ClusterConfig section\n\nRouteMatch Criteria Subset Reason\n------------------- ------ ------\n\nsite: india ep1, ep4 Subset of endpoints selected\nsite: us ep2 Subset of endpoints selected\napp: hr ep1, ep3 Fallback: No subset selector for \"app\" alone\nstage: production, app: hr ep3 Subset of endpoints selected\nother: x ep1, ep3 Fallback: No subset selector for “other”\n(none) ep1, ep3 Fallback: No subset requested.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/clusterEndpointSubsetSelectorType"
            },
            "x-displayname": "Endpoint Subsets.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Cluster may be configured to divide its endpoints into subsets based on metadata attached to the endpoints.",
            "x-f5xc-description-medium": "Cluster may be configured to divide its endpoints into subsets based on metadata attached to the endpoints. Routes may then specify the metadata that a endpoint must match in order to be selected by the load balancer. Endpoint_subsets is list of subsets for this cluster.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "endpoints": {
            "type": "array",
            "description": "List of references to all endpoint objects that belong to this cluster.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Endpoints",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of references to all endpoint objects that belong to this cluster.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "fallback_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterSubsetFallbackPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "health_checks": {
            "type": "array",
            "description": "List of references to healthcheck object for this cluster.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Health Checks.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "List of references to healthcheck object for this cluster.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http1_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp1ProtocolOptions"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http2_options"
            ]
          },
          "http2_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp2ProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http2 options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http1_config"
            ]
          },
          "http_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 5 minutes.",
            "format": "int64",
            "x-displayname": "HTTP Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "loadbalancer_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterLoadbalancerAlgorithm"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for loadbalancer algorithm.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\n\nSets the maximum number of requests allowed per connection to the origin server.\nEnter a value >=1 to define the request limit per connection.",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_panic_threshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no panic threshold.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "panic_threshold"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "outlier_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterOutlierDetectionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outlier detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "panic_threshold": {
            "type": "integer",
            "description": "Exclusive with [no_panic_threshold]\n\nConfigure a threshold (percentage of unhealthy endpoints) below which\nall endpoints will be considered for loadbalancing ignoring its health status.",
            "format": "int64",
            "x-displayname": "Panic threshold.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-description-short": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for...",
            "x-f5xc-description-medium": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for loadbalancing ignoring its health status.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 100,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_panic_threshold"
            ]
          },
          "proxy_protocol_v1": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v1.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v2"
            ]
          },
          "proxy_protocol_v2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v2.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v1"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "upstream_conn_pool_reuse_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamConnPoolReuseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET cluster will GET the object from the storage backend for namespace metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterHttp1ProtocolOptions": {
        "type": "object",
        "description": "HTTP/1.1 Protocol OPTIONS for upstream connections.",
        "title": "Http1ProtocolOptions",
        "x-displayname": "HTTP/1.1 Protocol OPTIONS.",
        "x-ves-proto-message": "ves.io.schema.cluster.Http1ProtocolOptions",
        "properties": {
          "header_transformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHeaderTransformationType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "HTTP/1.1 Protocol OPTIONS for upstream connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterHttp1ProtocolOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterHttp2ProtocolOptions": {
        "type": "object",
        "description": "Http2 Protocol OPTIONS for upstream connections.",
        "title": "Http2ProtocolOptions",
        "x-displayname": "Http2 Protocol OPTIONS.",
        "x-ves-proto-message": "ves.io.schema.cluster.Http2ProtocolOptions",
        "properties": {
          "enabled": {
            "type": "boolean",
            "description": "Enable/disable HTTP2 Protocol for upstream connections.",
            "title": "enabled",
            "format": "boolean",
            "x-displayname": "HTTP2 Enabled.",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Enable/disable HTTP2 Protocol for upstream connections.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Http2 Protocol OPTIONS for upstream connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterHttp2ProtocolOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of cluster",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.cluster.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/clusterListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterListResponseItem": {
        "type": "object",
        "description": "By default a summary of cluster is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of cluster",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.cluster.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this cluster.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this cluster.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this cluster.",
            "title": "description",
            "x-displayname": "Description.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates cluster is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates cluster is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this cluster.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this cluster.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this cluster.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/clusterStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this cluster.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of cluster is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of cluster is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterLoadbalancerAlgorithm": {
        "type": "string",
        "description": "Different load balancing algorithms supported\nWhen a connection to a endpoint in an upstream cluster is required, the load balancer uses loadbalancer_algorithm\nto determine which host is selected.\n\n- ROUND_ROBIN: ROUND_ROBIN\n\nPolicy in which each healthy/available upstream endpoint is selected in round robin order.\n- LEAST_REQUEST: LEAST_REQUEST\n\nPolicy in which loadbalancer picks the upstream endpoint which has the fewest active requests\n- RING_HASH: RING_HASH\n\nPolicy implements consistent hashing to upstream endpoints using ring hash of endpoint names\nHash of the incoming request is calculated using request hash policy.\nThe ring/modulo hash load balancer implements consistent hashing to upstream hosts.\nThe algorithm is based on mapping all hosts onto a circle such that the addition or\nremoval of a host from the host set changes only affect 1/N requests. This technique\nis also commonly known as “ketama” hashing. A consistent hashing load balancer is only\neffective when protocol routing is used that specifies a value to hash on. The minimum\nring size governs the replication factor for each host in the ring. For example, if the\nminimum ring size is 1024 and there are 16 hosts, each host will be replicated 64 times.\n- RANDOM: RANDOM\n\nPolicy in which each available upstream endpoint is selected in random order.\nThe random load balancer selects a random healthy host. The random load balancer generally\nperforms better than round robin if no health checking policy is configured. Random selection\navoids bias towards the host in the set that comes after a failed host.\n- LB_OVERRIDE: Load Balancer Override\n\nHash policy is taken from from the load balancer which is using this origin pool.",
        "title": "LoadbalancerAlgorithm",
        "enum": [
          "ROUND_ROBIN",
          "LEAST_REQUEST",
          "RING_HASH",
          "RANDOM",
          "LB_OVERRIDE"
        ],
        "default": "ROUND_ROBIN",
        "x-displayname": "Load Balancer Algorithm.",
        "x-ves-proto-enum": "ves.io.schema.cluster.LoadbalancerAlgorithm",
        "x-f5xc-description-short": "Different load balancing algorithms supported When a connection to a endpoint in an upstream cluster is required, the load balancer uses...",
        "x-f5xc-description-medium": "Different load balancing algorithms supported When a connection to a endpoint in an upstream cluster is required, the load balancer uses loadbalancer_algorithm to determine which host is selected. - ROUND_ROBIN: ROUND_ROBIN Policy in which each healthy/available upstream endpoint is selected in...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterLoadbalancerAlgorithm",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"ROUND_ROBIN\"",
          "example_yaml": "ROUND_ROBIN\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterOutlierDetectionType": {
        "type": "object",
        "description": "Outlier detection and ejection is the process of dynamically determining whether some number\nof hosts in an upstream cluster are performing unlike the others and removing them from the\nhealthy load balancing set. Outlier detection is a form of passive health checking.\n\nAlgorithm\n\n1. A endpoint is determined to be an outlier (based on configured number of consecutive_5xx\nor consecutive_gateway_failures) .\n2. If no endpoints have been ejected, loadbalancer will eject the host immediately.\nOtherwise, it checks to make sure the number of ejected hosts is below the allowed threshold\n(specified via max_ejection_percent setting). If the number of ejected hosts is above the\nthreshold, the host is not ejected.\n3. The endpoint is ejected for some number of milliseconds. Ejection means that the endpoint is marked\nunhealthy and will not be used during load balancing. The number of milliseconds is equal to the\nbase_ejection_time value multiplied by the number of times the host has been ejected.\n4. An ejected endpoint will automatically be brought back into service after the ejection time\nhas been satisfied.",
        "title": "OutlierDetectionType",
        "x-displayname": "Outlier Detection.",
        "x-ves-displayorder": "1,2,3,4,5",
        "x-ves-proto-message": "ves.io.schema.cluster.OutlierDetectionType",
        "properties": {
          "base_ejection_time": {
            "type": "integer",
            "description": "The base time that a host is ejected for. The real time is equal to the\nbase time multiplied by the number of times the host has been ejected.\nThis causes hosts to GET ejected for longer periods if they continue to fail.\nDefaults to 30000ms or 30s. Specified in milliseconds.",
            "title": "base_ejection_time",
            "format": "int64",
            "x-displayname": "Base Ejection Time.",
            "x-ves-example": "20000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-example": "20000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-description-short": "The base time that a host is ejected for. The real time is equal to the base time multiplied by the number of times the host has been ejected.",
            "x-f5xc-description-medium": "The base time that a host is ejected for. The real time is equal to the base time multiplied by the number of times the host has been ejected. This causes hosts to GET ejected for longer periods if they continue to fail.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1800000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "consecutive_5xx": {
            "type": "integer",
            "description": "If an upstream endpoint returns some number of consecutive 5xx, it will be ejected.\nNote that in this case a 5xx means an actual 5xx respond code, or an event that would\ncause the HTTP router to return one on the upstream’s behalf(reset, connection failure, etc.)\nconsecutive_5xx indicates the number of consecutive 5xx responses required before\na consecutive 5xx ejection occurs. Defaults to 5.",
            "title": "consecutive_5xx",
            "format": "int64",
            "x-displayname": "Consecutive 5xx Count.",
            "x-ves-example": "3",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-example": "3",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-description-short": "If an upstream endpoint returns some number of consecutive 5xx, it will be ejected.",
            "x-f5xc-description-medium": "If an upstream endpoint returns some number of consecutive 5xx, it will be ejected. Note that in this case a 5xx means an actual 5xx respond code, or an event that would cause the HTTP router to return one on the upstream’s behalf(reset, connection failure, etc.) consecutive_5xx indicates the...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1024,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "consecutive_gateway_failure": {
            "type": "integer",
            "description": "If an upstream endpoint returns some number of consecutive “gateway errors”\n(502, 503 or 504 status code), it will be ejected. Note that this includes events\nthat would cause the HTTP router to return one of these status codes on the\nupstream’s behalf (reset, connection failure, etc.).\nConsecutive_gateway_failure indicates the number of consecutive gateway failures\nbefore a consecutive gateway failure ejection occurs. Defaults to 5.",
            "title": "consecutive_gateway_failure",
            "format": "int64",
            "x-displayname": "Consecutive Gateway Failure.",
            "x-ves-example": "5",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-description-short": "If an upstream endpoint returns some number of consecutive “gateway errors” (502, 503 or 504 status code), it will be ejected.",
            "x-f5xc-description-medium": "If an upstream endpoint returns some number of consecutive “gateway errors” (502, 503 or 504 status code), it will be ejected. Note that this includes events that would cause the HTTP router to return one of these status codes on the upstream’s behalf (reset, connection failure, etc.)...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1024,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "interval": {
            "type": "integer",
            "description": "The time interval between ejection analysis sweeps. This can result in\nboth new ejections as well as endpoints being returned to service. Defaults\nto 10000ms or 10s. Specified in milliseconds.",
            "title": "interval",
            "format": "int64",
            "x-displayname": "Interval",
            "x-ves-example": "5000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "5000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The time interval between ejection analysis sweeps. This can result in both new ejections as well as endpoints being returned to service.",
            "x-f5xc-description-medium": "The time interval between ejection analysis sweeps. This can result in both new ejections as well as endpoints being returned to service. Defaults to 10000ms or 10s.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 600000,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_ejection_percent": {
            "type": "integer",
            "description": "The maximum % of an upstream cluster that can be ejected due to outlier\ndetection. Defaults to 10% but will eject at least one host regardless of the value.",
            "title": "max_ejection_percent",
            "format": "int64",
            "x-displayname": "Max Ejection Percentage.",
            "x-ves-example": "20",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-example": "20",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-description-short": "The maximum % of an upstream cluster that can be ejected due to outlier detection.",
            "x-f5xc-description-medium": "The maximum % of an upstream cluster that can be ejected due to outlier detection. Defaults to 10% but will eject at least one host regardless of the value.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 100,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Outlier detection and ejection is the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike...",
        "x-f5xc-description-medium": "Outlier detection and ejection is the process of dynamically determining whether some number of hosts in an upstream cluster are performing unlike the others and removing them from the healthy load balancing set. Outlier detection is a form of passive health checking. Algorithm 1.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterOutlierDetectionType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a cluster",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.cluster.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterReplaceRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.cluster.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterReplaceSpecType": {
        "type": "object",
        "description": "Replacing an cluster object will update the object by replacing the existing spec with the provided one.\nFor read-then-write operations a resourceVersion mismatch will occur if the object was modified between the read and write.",
        "title": "Replace cluster",
        "x-displayname": "Replace Cluster.",
        "x-ves-oneof-field-http_protocol_type": "[\"auto_http_config\",\"http1_config\",\"http2_options\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-panic_threshold_type": "[\"no_panic_threshold\",\"panic_threshold\"]",
        "x-ves-oneof-field-proxy_protocol_type": "[\"disable_proxy_protocol\",\"proxy_protocol_v1\",\"proxy_protocol_v2\"]",
        "x-ves-proto-message": "ves.io.schema.cluster.ReplaceSpecType",
        "properties": {
          "auto_http_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http1_config",
              "http2_options"
            ]
          },
          "circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterCircuitBreaker"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to endpoints in the cluster.\nThis is specified in milliseconds. The default value is 2 seconds.",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds. The default value is 2 seconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_subset": {
            "type": "object",
            "description": "List of key-value pairs that define default subset. This subset can be referred in fallback_policy\nwhich gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-displayname": "Default Subset.",
            "x-ves-example": "Key:value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-example": "key:value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-description-short": "List of key-value pairs that define default subset.",
            "x-f5xc-description-medium": "List of key-value pairs that define default subset. This subset can be referred in fallback_policy which gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_proxy_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable proxy protocol.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "proxy_protocol_v1",
              "proxy_protocol_v2"
            ]
          },
          "endpoint_selection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterEndpointSelectionPolicy"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "endpoint_subsets": {
            "type": "array",
            "description": "Cluster may be configured to divide its endpoints into subsets based on metadata\nattached to the endpoints. Routes may then specify the metadata that a endpoint must match in\norder to be selected by the load balancer.\n\nEndpoint_subsets is list of subsets for this cluster. Each entry in this list has definition for a subset\n(which is collection of keys)\n\nDuring routing, the route’s metadata match configuration is used to find a specific subset.\nIf there is a subset with the exact keys and values specified by the route, the subset is used\nfor load balancing. Otherwise, the fallback policy is used. The cluster’s subset configuration must,\ntherefore, contain a definition that has the same keys as a given route in order for subset load\nbalancing to occur.\n\nExample:\n\nRouteConfig\n\nroutes:\n- match:\n - headers: []\npath:\npath: /1.log\nquery_params: []\nrouteDestination:\ndestinations:\n - cluster:\n - kind: cluster.object\nuid: 00000000-0000-4000-8000-0b50b89d07a2\nendpointSubsets:\nsite: india\n\nEndpointConfig\n\nmetadata:\nlabels:\ndeployment: debug\nsite: india\nname: end-1\nuid: end-1\n\nClusterConfig\n\ngcSpec:\ndefaultSubset:\nstage: production\nfallbackPolicy: DEFAULT_SUBSET\nendpointSubsets:\n - keys:\n - site\n - keys:\n - stage\n - app\n\nAssume the below endpoints are defined and associated with the cluster.\n\nEndpoint Labels\n-------- ------\n\nep1 stage: production, site: india\nep2 stage: deployment, site: us\nep3 stage: production, app: hr\nep4 site: india\n\nThe following table describes some routes and the result of their application\nto the cluster. The subset definition for cluster is assumed to be same as given\nabove in the ClusterConfig section\n\nRouteMatch Criteria Subset Reason\n------------------- ------ ------\n\nsite: india ep1, ep4 Subset of endpoints selected\nsite: us ep2 Subset of endpoints selected\napp: hr ep1, ep3 Fallback: No subset selector for \"app\" alone\nstage: production, app: hr ep3 Subset of endpoints selected\nother: x ep1, ep3 Fallback: No subset selector for “other”\n(none) ep1, ep3 Fallback: No subset requested.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/clusterEndpointSubsetSelectorType"
            },
            "x-displayname": "Endpoint Subsets.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Cluster may be configured to divide its endpoints into subsets based on metadata attached to the endpoints.",
            "x-f5xc-description-medium": "Cluster may be configured to divide its endpoints into subsets based on metadata attached to the endpoints. Routes may then specify the metadata that a endpoint must match in order to be selected by the load balancer. Endpoint_subsets is list of subsets for this cluster.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "endpoints": {
            "type": "array",
            "description": "List of references to all endpoint objects that belong to this cluster.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Endpoints",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of references to all endpoint objects that belong to this cluster.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "fallback_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterSubsetFallbackPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "health_checks": {
            "type": "array",
            "description": "List of references to healthcheck object for this cluster.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Health Checks.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "List of references to healthcheck object for this cluster.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http1_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp1ProtocolOptions"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http2_options"
            ]
          },
          "http2_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp2ProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http2 options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http1_config"
            ]
          },
          "http_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 5 minutes.",
            "format": "int64",
            "x-displayname": "HTTP Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "loadbalancer_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterLoadbalancerAlgorithm"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for loadbalancer algorithm.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\n\nSets the maximum number of requests allowed per connection to the origin server.\nEnter a value >=1 to define the request limit per connection.",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_panic_threshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no panic threshold.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "panic_threshold"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "outlier_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterOutlierDetectionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outlier detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "panic_threshold": {
            "type": "integer",
            "description": "Exclusive with [no_panic_threshold]\n\nConfigure a threshold (percentage of unhealthy endpoints) below which\nall endpoints will be considered for loadbalancing ignoring its health status.",
            "format": "int64",
            "x-displayname": "Panic threshold.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-description-short": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for...",
            "x-f5xc-description-medium": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for loadbalancing ignoring its health status.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 100,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_panic_threshold"
            ]
          },
          "proxy_protocol_v1": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v1.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v2"
            ]
          },
          "proxy_protocol_v2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v2.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v1"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "upstream_conn_pool_reuse_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamConnPoolReuseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Replacing an cluster object will update the object by replacing the existing spec with the provided one.",
        "x-f5xc-description-medium": "Replacing an cluster object will update the object by replacing the existing spec with the provided one. For read-then-write operations a resourceVersion mismatch will occur if the object was modified between the read and write.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Status for Cluster",
        "x-displayname": "Cluster",
        "x-ves-proto-message": "ves.io.schema.cluster.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "clusterSubsetFallbackPolicy": {
        "type": "string",
        "description": "Enumeration for SubsetFallbackPolicy if subset match is not found.\n\nThe request fails as if the cluster had no endpoint matching the subset policy\nAny cluster endpoint may be selected if the cluster had no endpoint matching the subset policy\nLoad balancing is done over endpoints matching default_subset if the cluster had no\nendpoint matching the subset policy.",
        "title": "SubsetFallbackPolicy",
        "enum": [
          "NO_FALLBACK",
          "ANY_ENDPOINT",
          "DEFAULT_SUBSET"
        ],
        "default": "NO_FALLBACK",
        "x-displayname": "Subset Fallback Policy.",
        "x-ves-proto-enum": "ves.io.schema.cluster.SubsetFallbackPolicy",
        "x-f5xc-description-short": "Enumeration for SubsetFallbackPolicy if subset match is not found.",
        "x-f5xc-description-medium": "Enumeration for SubsetFallbackPolicy if subset match is not found. The request fails as if the cluster had no endpoint matching the subset policy Any cluster endpoint may be selected if the cluster had no endpoint matching the subset policy Load balancing is done over endpoints matching...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for clusterSubsetFallbackPolicy",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"NO_FALLBACK\"",
          "example_yaml": "NO_FALLBACK\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaBlindfoldSecretInfoType": {
        "type": "object",
        "description": "BlindfoldSecretInfoType specifies information about the Secret managed by F5XC Secret Management.",
        "title": "BlindfoldSecretInfoType",
        "x-displayname": "Blindfold Secret.",
        "x-ves-displayorder": "3,1,2",
        "x-ves-proto-message": "ves.io.schema.BlindfoldSecretInfoType",
        "properties": {
          "decryption_provider": {
            "type": "string",
            "description": "Name of the Secret Management Access object that contains information about the backend Secret Management service.",
            "title": "Decryption Provider",
            "x-displayname": "Decryption Provider.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Name of the Secret Management Access object that contains information about the backend Secret Management service.",
            "x-f5xc-description-medium": "Name of the Secret Management Access object that contains information about the backend Secret Management service.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "location": {
            "type": "string",
            "description": "Location is the uri_ref. It could be in URL format for string:///\nOr it could be a path if the store provider is an HTTP/HTTPS location.",
            "title": "Location",
            "x-displayname": "Location",
            "x-ves-example": "String:///U2VjcmV0SW5mb3JtYXRpb24=.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-sensitive": true,
            "x-f5xc-example": "string:///U2VjcmV0SW5mb3JtYXRpb24=",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location.",
            "x-f5xc-description-medium": "Location is the uri_ref. It could be in URL format for string:/// Or it could be a path if the store provider is an HTTP/HTTPS location.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "minLength": 4,
              "maxLength": 131072,
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "manual-override",
                "confidence": 1.0,
                "category": "content",
                "note": "Blindfold envelope encryption (AES-256-GCM + RSA-OAEP) of an RSA-2048 TLS private key produces ~3700 char string:/// URL. 128KB max secret size = ~175KB base64. Discovery reported 1024 which is incorrect.",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 4,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "store_provider": {
            "type": "string",
            "description": "Name of the Secret Management Access object that contains information about the store to GET encrypted bytes\nThis field needs to be provided only if the URL scheme is not string:///.",
            "title": "Store Provider",
            "x-displayname": "Store Provider.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only...",
            "x-f5xc-description-medium": "Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "BlindfoldSecretInfoType specifies information about the Secret managed by F5XC Secret Management.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBlindfoldSecretInfoType",
          "required_fields": [
            "location"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"location\": \"string:///U2VjcmV0SW5mb3JtYXRpb24=\"\n}",
          "example_yaml": "location: string:///U2VjcmV0SW5mb3JtYXRpb24="
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaClearSecretInfoType": {
        "type": "object",
        "description": "ClearSecretInfoType specifies information about the Secret that is not encrypted.",
        "title": "ClearSecretInfoType",
        "x-displayname": "In-Clear Secret.",
        "x-ves-displayorder": "2,1",
        "x-ves-proto-message": "ves.io.schema.ClearSecretInfoType",
        "properties": {
          "provider": {
            "type": "string",
            "description": "Name of the Secret Management Access object that contains information about the store to GET encrypted bytes\nThis field needs to be provided only if the URL scheme is not string:///.",
            "title": "Provider",
            "x-displayname": "Provider",
            "x-ves-example": "Box-provider.",
            "x-f5xc-example": "box-provider",
            "x-f5xc-description-short": "Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only...",
            "x-f5xc-description-medium": "Name of the Secret Management Access object that contains information about the store to GET encrypted bytes This field needs to be provided only if the URL scheme is not string:///.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "url": {
            "type": "string",
            "description": "URL of the secret. Currently supported URL schemes is string:///.\nFor string:/// scheme, Secret needs to be encoded Base64 format.\nWhen asked for this secret, caller will GET Secret bytes after Base64 decoding.",
            "title": "URL",
            "maxLength": 131072,
            "x-displayname": "URL",
            "x-ves-example": "String:///U2VjcmV0SW5mb3JtYXRpb24=.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-sensitive": true,
            "x-f5xc-example": "string:///U2VjcmV0SW5mb3JtYXRpb24=",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "URL of the secret. Currently supported URL schemes is string:///.",
            "x-f5xc-description-medium": "URL of the secret. Currently supported URL schemes is string:///. For string:/// scheme, Secret needs to be encoded Base64 format. When asked for this secret, caller will GET Secret bytes after Base64 decoding.",
            "format": "uri",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 131072,
              "format": "uri",
              "minLength": 1,
              "pattern": "^(https?|ftp)://[^\\s/$.?#].[^\\s]*$",
              "formatDescription": "RFC 3986 URI with scheme (http, https, ftp)",
              "validation": {
                "rfc": "RFC 3986"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 131072
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "ClearSecretInfoType specifies information about the Secret that is not encrypted.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaClearSecretInfoType",
          "required_fields": [
            "url"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"url\": \"string:///U2VjcmV0SW5mb3JtYXRpb24=\"\n}",
          "example_yaml": "url: string:///U2VjcmV0SW5mb3JtYXRpb24="
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaHashAlgorithm": {
        "type": "string",
        "description": "Specifies the Hash Algorithm to be used\n\nInvalid hash algorithm\nsha256 hash algorithm\nsha1 hash algorithm.",
        "title": "HashAlgoritm",
        "enum": [
          "INVALID_HASH_ALGORITHM",
          "SHA256",
          "SHA1"
        ],
        "default": "INVALID_HASH_ALGORITHM",
        "x-displayname": "Hash Algorithm.",
        "x-ves-proto-enum": "ves.io.schema.HashAlgorithm",
        "x-f5xc-description-short": "Specifies the Hash Algorithm to be used Invalid hash algorithm sha256 hash algorithm sha1 hash algorithm.",
        "x-f5xc-description-medium": "Specifies the Hash Algorithm to be used Invalid hash algorithm sha256 hash algorithm sha1 hash algorithm.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaHashAlgorithm",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"INVALID_HASH_ALGORITHM\"",
          "example_yaml": "INVALID_HASH_ALGORITHM\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaHashAlgorithms": {
        "type": "object",
        "description": "Specifies the hash algorithms to be used.",
        "title": "HashAlgorithms",
        "x-displayname": "Hash Algorithms.",
        "x-ves-proto-message": "ves.io.schema.HashAlgorithms",
        "properties": {
          "hash_algorithms": {
            "type": "array",
            "description": "Ordered list of hash algorithms to be used.",
            "title": "Hash Algorithms",
            "minItems": 1,
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaHashAlgorithm"
            },
            "x-displayname": "Hash Algorithms.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Ordered list of hash algorithms to be used.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 4,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies the hash algorithms to be used.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaHashAlgorithms",
          "required_fields": [
            "hash_algorithms"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"hash_algorithms\": [\n    \"INVALID_HASH_ALGORITHM\"\n  ]\n}",
          "example_yaml": "hash_algorithms:\n- INVALID_HASH_ALGORITHM"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaHeaderTransformationType": {
        "type": "object",
        "description": "Header Transformation OPTIONS for HTTP/1.1 request/response headers.",
        "title": "HeaderTransformationType",
        "x-displayname": "Header Transformation.",
        "x-ves-displayorder": "1",
        "x-ves-oneof-field-header_transformation_choice": "[\"default_header_transformation\",\"preserve_case_header_transformation\",\"proper_case_header_transformation\"]",
        "x-ves-proto-message": "ves.io.schema.HeaderTransformationType",
        "properties": {
          "default_header_transformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Use the platform's current default HTTP header transformation behavior.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Use the platform's current default HTTP header transformation behavior.",
            "x-f5xc-conflicts-with": [
              "preserve_case_header_transformation",
              "proper_case_header_transformation"
            ]
          },
          "preserve_case_header_transformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Preserve HTTP header-name case when upstream case must remain unchanged.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Preserve HTTP header-name case when upstream case must remain unchanged.",
            "x-f5xc-conflicts-with": [
              "default_header_transformation",
              "proper_case_header_transformation"
            ]
          },
          "proper_case_header_transformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Transform HTTP header names to proper case when explicit transformation is required.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Transform HTTP header names to proper case when explicit transformation is required.",
            "x-f5xc-conflicts-with": [
              "default_header_transformation",
              "preserve_case_header_transformation"
            ]
          }
        },
        "x-f5xc-description-short": "Header Transformation OPTIONS for HTTP/1.1 request/response headers.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaHeaderTransformationType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaRoutingPriority": {
        "type": "string",
        "description": "Priority routing for each request.\nDifferent connection pools are used based on the priority selected for the request.\nAlso, circuit-breaker configuration at destination cluster is chosen based on selected priority.\n\nDefault routing mechanism\nHigh-Priority routing mechanism.",
        "title": "RoutingPriority",
        "enum": [
          "DEFAULT",
          "HIGH"
        ],
        "default": "DEFAULT",
        "x-displayname": "Routing Priority.",
        "x-ves-proto-enum": "ves.io.schema.RoutingPriority",
        "x-f5xc-description-short": "Priority routing for each request. Different connection pools are used based on the priority selected for the request.",
        "x-f5xc-description-medium": "Priority routing for each request. Different connection pools are used based on the priority selected for the request. Also, circuit-breaker configuration at destination cluster is chosen based on selected priority.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaRoutingPriority",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"DEFAULT\"",
          "example_yaml": "DEFAULT\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaSecretType": {
        "type": "object",
        "description": "SecretType is used in an object to indicate a sensitive/confidential field.",
        "title": "SecretType",
        "x-displayname": "Secret",
        "x-ves-oneof-field-secret_info_oneof": "[\"blindfold_secret_info\",\"clear_secret_info\"]",
        "x-ves-proto-message": "ves.io.schema.SecretType",
        "properties": {
          "blindfold_secret_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBlindfoldSecretInfoType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "clear_secret_info"
            ]
          },
          "clear_secret_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaClearSecretInfoType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "blindfold_secret_info"
            ]
          }
        },
        "x-f5xc-description-short": "SecretType is used in an object to indicate a sensitive/confidential field.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaSecretType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Secret management is platform-level"
          },
          "classification": {
            "category": "identity",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaTlsCertificateType": {
        "type": "object",
        "description": "Handle to fetch certificate and key.",
        "title": "TlsCertificateType",
        "x-displayname": "TLS Certificate.",
        "x-ves-oneof-field-ocsp_stapling_choice": "[\"custom_hash_algorithms\",\"disable_ocsp_stapling\",\"use_system_defaults\"]",
        "x-ves-proto-message": "ves.io.schema.TlsCertificateType",
        "properties": {
          "certificate_url": {
            "type": "string",
            "description": "TLS certificate.\nCertificate or certificate chain in PEM format including the PEM headers.",
            "title": "certificate_url",
            "minLength": 1,
            "maxLength": 131072,
            "x-displayname": "Certificate.",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.certificate_url": "true",
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.certificate_url": "true",
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-description-short": "TLS certificate. Certificate or certificate chain in PEM format including the PEM headers.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 131072,
              "byteLength": {
                "max": 131072,
                "min": 1
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "custom_hash_algorithms": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHashAlgorithms"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom hash algorithms.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_ocsp_stapling",
              "use_system_defaults"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description for the certificate.",
            "title": "description",
            "x-displayname": "Description.",
            "x-ves-example": "Certificate used in production environment.",
            "x-f5xc-example": "Certificate used in production environment",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disable_ocsp_stapling": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable ocsp stapling.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_hash_algorithms",
              "use_system_defaults"
            ]
          },
          "private_key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-example": "example",
            "x-f5xc-description-short": "Private key for asymmetric cryptography.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_system_defaults": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for use system defaults.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_hash_algorithms",
              "disable_ocsp_stapling"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsCertificateType",
          "required_fields": [
            "certificate_url"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"certificate_url\": \"value\"\n}",
          "example_yaml": "certificate_url: value"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTlsParamsType__ves_io_schema_advertise_policy": {
        "type": "object",
        "description": "Information of different aspects for TLS authentication related to ciphers,\ncertificates and trust store.",
        "title": "TlsParamsType",
        "x-displayname": "TLS Parameters.",
        "x-ves-displayorder": "4,7,1,2,3",
        "x-ves-proto-message": "ves.io.schema.TlsParamsType",
        "properties": {
          "cipher_suites": {
            "type": "array",
            "description": "The following list specifies the supported cipher suite\nTLS_AES_128_GCM_SHA256\nTLS_AES_256_GCM_SHA384\nTLS_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_128_CBC_SHA\nTLS_RSA_WITH_AES_128_GCM_SHA256\nTLS_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_256_GCM_SHA384\n\nIf not specified, the default list:\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nwill be used.",
            "title": "cipher_suites",
            "items": {
              "type": "string"
            },
            "x-displayname": "Cipher Suites.",
            "x-ves-example": "TLS_AES_128_GCM_SHA256.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "TLS_AES_128_GCM_SHA256",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256...",
            "x-f5xc-description-medium": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "maximum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "minimum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_certificates": {
            "type": "array",
            "description": "Set of TLS certificates.",
            "title": "tls_certificates",
            "items": {
              "$ref": "#/components/schemas/schemaTlsCertificateType"
            },
            "x-displayname": "TLS Certificates.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "validation_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsValidationParamsType__ves_io_schema_advertise_policy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Information of different aspects for TLS authentication related to ciphers, certificates and trust store.",
        "x-f5xc-description-medium": "Information of different aspects for TLS authentication related to ciphers, certificates and trust store.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsParamsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTlsProtocol": {
        "type": "string",
        "description": "TlsProtocol is enumeration of supported TLS versions\n\nF5 Distributed Cloud will choose the optimal TLS version.",
        "title": "TlsProtocol",
        "enum": [
          "TLS_AUTO",
          "TLSv1_0",
          "TLSv1_1",
          "TLSv1_2",
          "TLSv1_3"
        ],
        "default": "TLS_AUTO",
        "x-displayname": "TLS Protocol.",
        "x-ves-proto-enum": "ves.io.schema.TlsProtocol",
        "x-f5xc-description-short": "TlsProtocol is enumeration of supported TLS versions F5 Distributed Cloud will choose the optimal TLS version.",
        "x-f5xc-description-medium": "TlsProtocol is enumeration of supported TLS versions F5 Distributed Cloud will choose the optimal TLS version.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsProtocol",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"TLS_AUTO\"",
          "example_yaml": "TLS_AUTO\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTlsValidationParamsType__ves_io_schema_advertise_policy": {
        "type": "object",
        "description": "This includes URL for a trust store, whether SAN verification is required\nand list of Subject Alt Names for verification.",
        "title": "TlsValidationParamsType",
        "x-displayname": "TLS Certificate Validation Parameters.",
        "x-ves-oneof-field-trusted_ca_choice": "[\"trusted_ca\",\"trusted_ca_url\"]",
        "x-ves-proto-message": "ves.io.schema.TlsValidationParamsType",
        "properties": {
          "skip_hostname_verification": {
            "type": "boolean",
            "description": "When True, skip verification of hostname i.e. CN/Subject Alt Name of certificate\nis not matched to the connecting hostname.",
            "title": "skip_hostname_verification",
            "format": "boolean",
            "x-displayname": "Skip verification of hostname.",
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "When True, skip verification of hostname i.e. CN/Subject Alt Name of certificate is not matched to the connecting hostname.",
            "x-f5xc-description-medium": "When True, skip verification of hostname i.e. CN/Subject Alt Name of certificate is not matched to the connecting hostname.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "trusted_ca": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTrustedCAList__ves_io_schema_advertise_policy"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca_url"
            ]
          },
          "trusted_ca_url": {
            "type": "string",
            "description": "Exclusive with [trusted_ca]\nInline Root CA Certificate.",
            "title": "trusted_ca_url",
            "maxLength": 131072,
            "x-displayname": "Inline Root CA Certificate (legacy)",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-f5xc-description-short": "Exclusive with [trusted_ca] Inline Root CA Certificate.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 131072,
              "byteLength": {
                "max": 131072
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca"
            ]
          },
          "verify_subject_alt_names": {
            "type": "array",
            "description": "List of acceptable Subject Alt Names/CN in the peer's certificate.\nWhen skip_hostname_verification is false and verify_subject_alt_names is empty,\nthe hostname of the peer will be used for matching against SAN/CN of peer's certificate.",
            "title": "verify_subject_alt_names",
            "items": {
              "type": "string"
            },
            "x-displayname": "List of SANs for matching.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "List of acceptable Subject Alt Names/CN in the peer's certificate.",
            "x-f5xc-description-medium": "List of acceptable Subject Alt Names/CN in the peer's certificate. When skip_hostname_verification is false and verify_subject_alt_names is empty, the hostname of the peer will be used for matching against SAN/CN of peer's certificate.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Includes URL for a trust store, whether SAN verification is required and list of Subject Alt Names for verification.",
        "x-f5xc-description-medium": "Includes URL for a trust store, whether SAN verification is required and list of Subject Alt Names for verification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsValidationParamsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTrustedCAList__ves_io_schema_advertise_policy": {
        "type": "object",
        "description": "Reference to Root CA Certificate.",
        "title": "Root CA Certificate",
        "x-displayname": "Root CA Certificate Reference.",
        "x-ves-proto-message": "ves.io.schema.TrustedCAList",
        "properties": {
          "trusted_ca_list": {
            "type": "array",
            "description": "Reference to Root CA Certificate.",
            "title": "Root CA Certificate",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Root CA Certificate Reference.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTrustedCAList",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Trust anchors should be centralized for consistent TLS validation"
          },
          "classification": {
            "category": "certificate",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaUpstreamCertificateParamsType": {
        "type": "object",
        "description": "Certificate Parameters for authentication, TLS ciphers, and trust store.",
        "title": "UpstreamCertificateParamsType",
        "x-displayname": "Upstream Certificate Parameters.",
        "x-ves-displayorder": "1,2,3,4,5",
        "x-ves-proto-message": "ves.io.schema.UpstreamCertificateParamsType",
        "properties": {
          "certificates": {
            "type": "array",
            "description": "Client TLS Certificate required for mTLS authentication.",
            "title": "certificates",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Client Certificate.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Client TLS Certificate required for mTLS authentication.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "cipher_suites": {
            "type": "array",
            "description": "The following list specifies the supported cipher suite\nTLS_AES_128_GCM_SHA256\nTLS_AES_256_GCM_SHA384\nTLS_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_128_CBC_SHA\nTLS_RSA_WITH_AES_128_GCM_SHA256\nTLS_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_256_GCM_SHA384\n\nIf not specified, the default list:\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nwill be used.",
            "title": "cipher_suites",
            "items": {
              "type": "string"
            },
            "x-displayname": "Cipher Suites.",
            "x-ves-example": "TLS_AES_128_GCM_SHA256.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "TLS_AES_128_GCM_SHA256",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256...",
            "x-f5xc-description-medium": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "maximum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "minimum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "validation_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsValidationParamsType__ves_io_schema_advertise_policy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Certificate Parameters for authentication, TLS ciphers, and trust store.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaUpstreamCertificateParamsType",
          "required_fields": [
            "certificates"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"certificates\": [\n    {}\n  ]\n}",
          "example_yaml": "certificates:\n- {}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaUpstreamConnPoolReuseType": {
        "type": "object",
        "description": "Select upstream connection pool reuse state for every downstream connection. This configuration choice is for HTTP(S) LB only.",
        "title": "UpstreamConnPoolReuseType",
        "x-displayname": "Select upstream connection pool reuse state.",
        "x-ves-oneof-field-map_downstream_to_upstream_conn_pool_type": "[\"disable_conn_pool_reuse\",\"enable_conn_pool_reuse\"]",
        "x-ves-proto-message": "ves.io.schema.UpstreamConnPoolReuseType",
        "properties": {
          "disable_conn_pool_reuse": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable conn pool reuse.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_conn_pool_reuse"
            ]
          },
          "enable_conn_pool_reuse": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable conn pool reuse.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_conn_pool_reuse"
            ]
          }
        },
        "x-f5xc-description-short": "Select upstream connection pool reuse state for every downstream connection. This configuration choice is for HTTP(S) LB only.",
        "x-f5xc-description-medium": "Select upstream connection pool reuse state for every downstream connection. This configuration choice is for HTTP(S) LB only.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaUpstreamConnPoolReuseType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaUpstreamTlsParamsType": {
        "type": "object",
        "description": "TLS configuration for upstream connections.",
        "title": "UpstreamTlsParamsType",
        "x-displayname": "Upstream TLS Parameters.",
        "x-ves-displayorder": "5,6,8",
        "x-ves-oneof-field-max_session_keys_type": "[\"default_session_key_caching\",\"disable_session_key_caching\",\"max_session_keys\"]",
        "x-ves-oneof-field-sni_choice": "[\"disable_sni\",\"sni\",\"use_host_header_as_sni\"]",
        "x-ves-oneof-field-tls_params_choice": "[\"cert_params\",\"common_params\"]",
        "x-ves-proto-message": "ves.io.schema.UpstreamTlsParamsType",
        "properties": {
          "cert_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamCertificateParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for cert params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "common_params"
            ]
          },
          "common_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsParamsType__ves_io_schema_advertise_policy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for common params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cert_params"
            ]
          },
          "default_session_key_caching": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default session key caching.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_session_key_caching",
              "max_session_keys"
            ]
          },
          "disable_session_key_caching": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable session key caching.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_session_key_caching",
              "max_session_keys"
            ]
          },
          "disable_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable sni.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "sni",
              "use_host_header_as_sni"
            ]
          },
          "max_session_keys": {
            "type": "integer",
            "description": "Exclusive with [default_session_key_caching disable_session_key_caching]\n\nNumber of session keys that are cached.",
            "title": "Max Session Keys Cached",
            "format": "int64",
            "x-displayname": "Max Session Keys Cached.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2",
              "ves.io.schema.rules.uint32.lte": "64"
            },
            "x-f5xc-example": "25",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2",
              "ves.io.schema.rules.uint32.lte": "64"
            },
            "x-f5xc-description-short": "Exclusive with [default_session_key_caching disable_session_key_caching] Number of session keys that are cached.",
            "x-f5xc-description-medium": "Exclusive with [default_session_key_caching disable_session_key_caching] Number of session keys that are cached.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 2,
              "maximum": 64,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_session_key_caching",
              "disable_session_key_caching"
            ]
          },
          "sni": {
            "type": "string",
            "description": "Exclusive with [disable_sni use_host_header_as_sni]\nSNI value to be used.",
            "title": "sni",
            "maxLength": 256,
            "x-displayname": "SNI Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [disable_sni use_host_header_as_sni] SNI value to be used.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_sni",
              "use_host_header_as_sni"
            ]
          },
          "use_host_header_as_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_sni",
              "sni"
            ]
          }
        },
        "x-f5xc-description-short": "TLS configuration for upstream connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaUpstreamTlsParamsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "apiHttpBody": {
        "type": "object",
        "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\nmessage GetResourceRequest {\n// A unique request ID.\nString request_id = 1;\n\n// The raw HTTP body is bound to this field.\ngoogle.api.httpbody http_body = 2;\n}\n\nservice ResourceService {\nrpc GetResource(GetResourceRequest) returns (google.api.httpbody);\nrpc UpdateResource(google.api.httpbody) returns\n(google.protobuf.empty);\n}\n\nExample with streaming methods:\n\nservice CaldavService {\nrpc GetCalendar(stream google.api.httpbody)\nreturns (stream google.api.httpbody);\nrpc UpdateCalendar(stream google.api.httpbody)\nreturns (stream google.api.httpbody);\n}\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged.",
        "properties": {
          "content_type": {
            "type": "string",
            "description": "The HTTP Content-Type header value specifying the content type of the body.",
            "x-f5xc-description-short": "The HTTP Content-Type header value specifying the content type of the body.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "data": {
            "type": "string",
            "description": "The HTTP request/response body as raw binary.",
            "format": "byte",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The HTTP request/response body as raw binary.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "byte",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "extensions": {
            "type": "array",
            "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs.",
            "items": {
              "$ref": "#/components/schemas/protobufAny"
            },
            "x-f5xc-description-short": "Application specific response metadata. Must be set in the first response for streaming APIs.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Message that represents an arbitrary HTTP body.",
        "x-f5xc-description-medium": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for apiHttpBody",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_typeAPIEPCategory": {
        "type": "string",
        "description": "The category of an API endpoint.\n\nDiscovered API Endpoint.\nThe API Endpoint is imported from user swagger.\nThe API Endpoint is present at the API Inventory.\nThe API Endpoint is considered as part of Shadow API.\nDeprecated API Endpoint.\nNon-API Endpoint.\n- APIEP_CATEGORY_DISCOVERY_POLICY: x-displayName: Policy\nUser-Defined Discovery Policy.",
        "title": "APIEP Category",
        "enum": [
          "APIEP_CATEGORY_DISCOVERED",
          "APIEP_CATEGORY_SWAGGER",
          "APIEP_CATEGORY_INVENTORY",
          "APIEP_CATEGORY_SHADOW",
          "APIEP_CATEGORY_DEPRECATED",
          "APIEP_CATEGORY_NON_API",
          "APIEP_CATEGORY_DISCOVERY_POLICY"
        ],
        "default": "APIEP_CATEGORY_DISCOVERED",
        "x-displayname": "Category of the API Endpoint.",
        "x-ves-proto-enum": "ves.io.schema.app_type.APIEPCategory",
        "x-f5xc-description-short": "The category of an API endpoint. Discovered API Endpoint.",
        "x-f5xc-description-medium": "The category of an API endpoint. Discovered API Endpoint. The API Endpoint is imported from user swagger. The API Endpoint is present at the API Inventory. The API Endpoint is considered as part of Shadow API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAPIEPCategory",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"APIEP_CATEGORY_DISCOVERED\"",
          "example_yaml": "APIEP_CATEGORY_DISCOVERED\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAPIEPSecurityRisk": {
        "type": "string",
        "description": "Signifies API Endpoint Security Risk Level\n\nSecurity risk is not detected (for example, when no traffic).\nAPI Endpoint has low security risk.\nAPI Endpoint has medium security risk.\nAPI Endpoint has high security risk.\nAPI Endpoint has critical security risk.",
        "title": "APIEP Security Risk",
        "enum": [
          "APIEP_SEC_RISK_NONE",
          "APIEP_SEC_RISK_LOW",
          "APIEP_SEC_RISK_MED",
          "APIEP_SEC_RISK_HIGH",
          "APIEP_SEC_RISK_CRITICAL"
        ],
        "default": "APIEP_SEC_RISK_NONE",
        "x-displayname": "API Endpoint Security Risk.",
        "x-ves-proto-enum": "ves.io.schema.app_type.APIEPSecurityRisk",
        "x-f5xc-description-short": "Signifies API Endpoint Security Risk Level Security risk is not detected (for example, when no traffic).",
        "x-f5xc-description-medium": "Signifies API Endpoint Security Risk Level Security risk is not detected (for example, when no traffic). API Endpoint has low security risk. API Endpoint has medium security risk.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAPIEPSecurityRisk",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"APIEP_SEC_RISK_NONE\"",
          "example_yaml": "APIEP_SEC_RISK_NONE\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeDiscoveredAPISettings": {
        "type": "object",
        "description": "Configure Discovered API Settings.",
        "title": "DiscoveredAPISettings",
        "x-displayname": "Discovered API Settings.",
        "x-ves-proto-message": "ves.io.schema.app_type.DiscoveredAPISettings",
        "properties": {
          "purge_duration_for_inactive_discovered_apis": {
            "type": "integer",
            "description": "Inactive discovered API will be deleted after configured duration.",
            "title": "purge_duration_for_inactive_discovered_apis",
            "format": "int64",
            "x-displayname": "Purge Duration for Inactive Discovered APIs from Traffic.",
            "x-ves-example": "2",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "7"
            },
            "x-f5xc-example": "2",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "7"
            },
            "x-f5xc-description-short": "Inactive discovered API will be deleted after configured duration.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 7,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-example": "2",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeDiscoveredAPISettings",
          "required_fields": [
            "purge_duration_for_inactive_discovered_apis"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"purge_duration_for_inactive_discovered_apis\": 1\n}",
          "example_yaml": "purge_duration_for_inactive_discovered_apis: 1"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeRiskScore": {
        "type": "object",
        "description": "Risk score of the vulnerabilities found for this API Endpoint.",
        "title": "RiskScore",
        "x-displayname": "Risk score.",
        "x-ves-proto-message": "ves.io.schema.app_type.RiskScore",
        "properties": {
          "score": {
            "type": "number",
            "description": "Score of the vulnerabilities found for this API Endpoint.",
            "title": "score",
            "format": "float",
            "x-displayname": "Score",
            "x-f5xc-description-short": "Score of the vulnerabilities found for this API Endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "severity": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIEPSecurityRisk"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Risk score of the vulnerabilities found for this API Endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeRiskScore",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeSensitiveDataType": {
        "type": "string",
        "description": "List of possible types of sensitive data that can be discovered for an APIEP.\n\nThe Sensitive Data detected as credit card number.\nThe sensitive data detected as social security number.\nThe sensitive data detected as IP address.\nThe sensitive data detected as email address.\nThe sensitive data detected as phone number.\nThe sensitive data detected as credentials info(e.g password, username etc).\nThe sensitive data detected as information leakage.\nThe sensitive data detected as masked PII (CCN, SSN)\nThe sensitive data detected as Location.",
        "title": "SensitiveDataType",
        "enum": [
          "SENSITIVE_DATA_TYPE_CCN",
          "SENSITIVE_DATA_TYPE_SSN",
          "SENSITIVE_DATA_TYPE_IP",
          "SENSITIVE_DATA_TYPE_EMAIL",
          "SENSITIVE_DATA_TYPE_PHONE",
          "SENSITIVE_DATA_TYPE_CREDENTIALS",
          "SENSITIVE_DATA_TYPE_APP_INFO_LEAKAGE",
          "SENSITIVE_DATA_TYPE_MASKED_PII",
          "SENSITIVE_DATA_TYPE_LOCATION"
        ],
        "default": "SENSITIVE_DATA_TYPE_CCN",
        "x-displayname": "Sensitive Data Type.",
        "x-ves-proto-enum": "ves.io.schema.app_type.SensitiveDataType",
        "x-f5xc-description-short": "List of possible types of sensitive data that can be discovered for an APIEP. The Sensitive Data detected as credit card number.",
        "x-f5xc-description-medium": "List of possible types of sensitive data that can be discovered for an APIEP. The Sensitive Data detected as credit card number. The sensitive data detected as social security number.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeSensitiveDataType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"SENSITIVE_DATA_TYPE_CCN\"",
          "example_yaml": "SENSITIVE_DATA_TYPE_CCN\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "common_cache_ruleCustomCacheRule": {
        "type": "object",
        "description": "Caching policies for CDN.",
        "title": "Custom Cache Rules",
        "x-displayname": "Custom Cache Rules.",
        "x-ves-proto-message": "ves.io.schema.views.common_cache_rule.CustomCacheRule",
        "properties": {
          "cdn_cache_rules": {
            "type": "array",
            "description": "Reference to CDN Cache Rule configuration object.",
            "title": "cdn_cache_rule",
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "CDN Cache Rule.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Reference to CDN Cache Rule configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cache_ruleCustomCacheRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnCDNControllerStatus__ves_io_schema_views_http_loadbalancer": {
        "type": "object",
        "description": "CDN Controller Status.",
        "title": "CDN Controller status",
        "x-displayname": "CDN Controller Status.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.CDNControllerStatus",
        "properties": {
          "cfg_version": {
            "type": "integer",
            "description": "Cfg version.",
            "title": "Cfg Version",
            "format": "int64",
            "x-displayname": "Cfg Version.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "cp_version": {
            "type": "integer",
            "description": "CP version.",
            "title": "CP Version",
            "format": "int64",
            "x-displayname": "CP Version.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deployment_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_cdnCDNLoadbalancerDeploymentStatus"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "error": {
            "type": "string",
            "description": "Error message.",
            "title": "Error",
            "x-displayname": "Error",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnCDNControllerStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnCDNLoadbalancerDeploymentStatus": {
        "type": "string",
        "description": "Deployment status\n\n- CDN_LB_STATUS_FAILED: x-displayname: \"Failed\"",
        "title": "CDN LoadBalancer Deployment status",
        "enum": [
          "CDN_LB_STATUS_CREATED",
          "CDN_LB_STATUS_DEPLOYING",
          "CDN_LB_STATUS_DEPLOY_FAILED",
          "CDN_LB_STATUS_DEPLOYED",
          "CDN_LB_STATUS_FAILED"
        ],
        "default": "CDN_LB_STATUS_CREATED",
        "x-displayname": "CDN LoadBalancer Deployment status.",
        "x-ves-proto-enum": "ves.io.schema.views.common_cdn.CDNLoadbalancerDeploymentStatus",
        "x-f5xc-description-short": "Deployment status - CDN_LB_STATUS_FAILED: x-displayname: \"Failed\".",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnCDNLoadbalancerDeploymentStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"CDN_LB_STATUS_CREATED\"",
          "example_yaml": "CDN_LB_STATUS_CREATED\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnCDNSiteDeploymentStatus": {
        "type": "string",
        "title": "CDNSiteDeploymentStatus",
        "enum": [
          "DEPLOYMENT_STATUS_NOT_DEPLOYED",
          "DEPLOYMENT_STATUS_DEPLOYING",
          "DEPLOYMENT_STATUS_DEPLOY_FAILED",
          "DEPLOYMENT_STATUS_DEPLOYED"
        ],
        "default": "DEPLOYMENT_STATUS_NOT_DEPLOYED",
        "x-displayname": "CDN LoadBalancer Site Deployment status.",
        "x-ves-proto-enum": "ves.io.schema.views.common_cdn.CDNSiteDeploymentStatus",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnCDNSiteDeploymentStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"DEPLOYMENT_STATUS_NOT_DEPLOYED\"",
          "example_yaml": "DEPLOYMENT_STATUS_NOT_DEPLOYED\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnCDNSiteStatus__ves_io_schema_views_http_loadbalancer": {
        "type": "object",
        "description": "This CDN status is per site and it indicates the status of the CDN service for the LB on the site.",
        "title": "CDN Site status details",
        "x-displayname": "CDN Site Status.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.CDNSiteStatus",
        "properties": {
          "error": {
            "type": "string",
            "description": "Error message (if any)",
            "title": "Error",
            "x-displayname": "Error",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site": {
            "type": "string",
            "description": "Name of the site that reported this status.",
            "title": "Site Name",
            "x-displayname": "Site",
            "x-f5xc-description-short": "Name of the site that reported this status.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_cdnCDNSiteDeploymentStatus"
              }
            ],
            "x-f5xc-example": "active",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "CDN status is per site and it indicates the status of the CDN service for the LB on the site.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnCDNSiteStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnGetServiceOperationReq": {
        "type": "object",
        "description": "GET Service Operation Request.",
        "title": "Service Operation Request",
        "x-displayname": "GET Service Operation Request.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.GetServiceOperationReq",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the CDN distribution.\nFormat: string.",
            "title": "CDN Distribution Name",
            "x-displayname": "Name of the CDN distribution.",
            "x-ves-example": "CDN-1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "cdn-1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Name of the CDN distribution. Format: string.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace scope of the operation request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Default",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "default",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Namespace scope of the operation request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "service_op_id": {
            "type": "integer",
            "description": "Operation ID for which status is requested.",
            "title": "Service Operation ID",
            "format": "int64",
            "x-displayname": "Service Operation ID.",
            "x-ves-example": "101",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "101",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Operation ID for which status is requested.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnGetServiceOperationReq",
          "required_fields": [
            "name",
            "namespace",
            "service_op_id"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"cdn-1\",\n  \"namespace\": \"default\",\n  \"service_op_id\": 0\n}",
          "example_yaml": "name: cdn-1\nnamespace: default\nservice_op_id: 0"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnGetServiceOperationRsp": {
        "type": "object",
        "description": "GET Service Operation Response.",
        "title": "Service Operation Response",
        "x-displayname": "Service Operation Response.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.GetServiceOperationRsp",
        "properties": {
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "Service Operation Status Details",
            "items": {
              "$ref": "#/components/schemas/common_cdnServiceOperationItem"
            },
            "x-displayname": "Operation Status Details.",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnGetServiceOperationRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnLilacCDNCachePurgeRequest": {
        "type": "object",
        "description": "CDN Cache Purge.",
        "title": "Cache Purge Request",
        "x-displayname": "Cache Purge.",
        "x-ves-oneof-field-pattern_type": "[\"hostname\",\"pattern\",\"purge_all\",\"url\"]",
        "x-ves-oneof-field-purge_type": "[\"hard_purge\",\"soft_purge\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.LilacCDNCachePurgeRequest",
        "properties": {
          "hard_purge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "soft_purge"
            ]
          },
          "hostname": {
            "type": "string",
            "description": "Exclusive with [pattern purge_all URL]\nPurge cached content by Hostname.",
            "title": "Hostname",
            "x-displayname": "Hostname",
            "x-ves-example": "xyz.com",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-example": "xyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [pattern purge_all URL] Purge cached content by Hostname.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
              "format": "fqdn",
              "validation": {
                "rfc": "RFC 1123"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
            "minLength": 1,
            "x-f5xc-conflicts-with": [
              "pattern",
              "purge_all",
              "url"
            ]
          },
          "pattern": {
            "type": "string",
            "description": "Exclusive with [hostname purge_all URL]\nPurge cached content using PCRE 1 compliant regular expression.",
            "title": "Regex Pattern to match",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Pattern",
            "x-ves-example": ".*\\\\.ts",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": ".*\\\\.ts",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [hostname purge_all URL] Purge cached content using PCRE 1 compliant regular expression.",
            "x-f5xc-description-medium": "Exclusive with [hostname purge_all URL] Purge cached content using PCRE 1 compliant regular expression.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hostname",
              "purge_all",
              "url"
            ]
          },
          "purge_all": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hostname",
              "pattern",
              "url"
            ]
          },
          "soft_purge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hard_purge"
            ]
          },
          "url": {
            "type": "string",
            "description": "Exclusive with [hostname pattern purge_all]\nPurge cache by using a URL path.",
            "title": "URL",
            "x-displayname": "URL",
            "x-ves-example": "/path1",
            "x-f5xc-example": "/path1",
            "x-f5xc-description-short": "Exclusive with [hostname pattern purge_all] Purge cache by using a URL path.",
            "format": "uri",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "network",
              "maxLength": 1024,
              "format": "uri",
              "minLength": 1,
              "pattern": "^(https?|ftp)://[^\\s/$.?#].[^\\s]*$",
              "formatDescription": "RFC 3986 URI with scheme (http, https, ftp)",
              "validation": {
                "rfc": "RFC 3986"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.9,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hostname",
              "pattern",
              "purge_all"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnLilacCDNCachePurgeRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnLilacCDNCachePurgeResponse": {
        "type": "object",
        "description": "Cache Purge message.",
        "title": "Purge Response",
        "x-displayname": "Cache Purge Response.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.LilacCDNCachePurgeResponse",
        "properties": {
          "purge_request_id": {
            "type": "integer",
            "description": "Request ID to track the status of the purge request.",
            "title": "Purge Request Id",
            "format": "int64",
            "x-displayname": "Purge Request ID.",
            "x-f5xc-description-short": "Request ID to track the status of the purge request.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnLilacCDNCachePurgeResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnListServiceOperationsReq": {
        "type": "object",
        "description": "List Service Operations Request.",
        "title": "Service Operations Request",
        "x-displayname": "List Service Operations Request.",
        "x-ves-oneof-field-options": "[\"lastn\",\"time_range\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.ListServiceOperationsReq",
        "properties": {
          "lastn": {
            "type": "integer",
            "description": "Exclusive with [time_range]\nThe last n service operations.",
            "title": "lastn",
            "format": "int64",
            "x-displayname": "Last N",
            "x-ves-example": "5",
            "x-f5xc-example": "5",
            "x-f5xc-description-short": "Exclusive with [time_range] The last n service operations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "time_range"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the CDN Distribution.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "ns1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "time_range": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_cdnServiceOperationsTimeRange"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "lastn"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnListServiceOperationsReq",
          "required_fields": [
            "namespace"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"namespace\": \"ns1\"\n}",
          "example_yaml": "namespace: ns1"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnListServiceOperationsRsp": {
        "type": "object",
        "description": "GET Service Operations Response.",
        "title": "Service Operations Response",
        "x-displayname": "Service Operations Response.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.ListServiceOperationsRsp",
        "properties": {
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "Details of the Service Operation",
            "items": {
              "$ref": "#/components/schemas/common_cdnServiceOperationsItem"
            },
            "x-displayname": "Details of the Service Operation.",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnListServiceOperationsRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnPurgeOperationItem": {
        "type": "object",
        "description": "Purge Operation Status.",
        "title": "Purge Operation Status",
        "x-displayname": "Purge Operation Status.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.PurgeOperationItem",
        "properties": {
          "bytes_not_purged": {
            "type": "string",
            "description": "Number of bytes Not Purged.",
            "title": "Number of Bytes Not Purged",
            "format": "uint64",
            "x-displayname": "Number of Bytes Not Purged.",
            "x-f5xc-example": "1024",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bytes_purged": {
            "type": "string",
            "description": "Number of bytes Purged.",
            "title": "Number of Bytes Purged",
            "format": "uint64",
            "x-displayname": "Number of Bytes Purged.",
            "x-f5xc-example": "1024",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "finish_time": {
            "type": "string",
            "description": "Finish time of Purge Operation\nformat: unix_timestamp|RFC 3339.",
            "title": "Finish time of Purge Operation",
            "x-displayname": "Cache Purge Finish Time.",
            "x-ves-example": "2019-09-23T12:32:11.733Z.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "2019-09-23T12:32:11.733Z",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Finish time of Purge Operation format: unix_timestamp|RFC 3339.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "hard_purge": {
            "type": "boolean",
            "description": "Cache Hard Purge.",
            "title": "Hard Purge",
            "format": "boolean",
            "x-displayname": "Cache Hard Purge.",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "purge_time": {
            "type": "string",
            "description": "Time taken for Cache Purge.",
            "title": "Time taken for Cache Purge",
            "x-displayname": "Cache Purge Time.",
            "x-ves-example": "2018-12-23T12:30:11.733Z.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "2018-12-23T12:30:11.733Z",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "regexp": {
            "type": "string",
            "description": "Regex issued in the Purge Operation.",
            "title": "Regex used in Purge",
            "x-displayname": "Cache Purge Regex.",
            "x-ves-example": "*.m3u8",
            "x-f5xc-example": "*.m3u8",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site": {
            "type": "string",
            "description": "Site at which the purge operation was performed.",
            "title": "NodeId on which the operation status is gathered",
            "x-displayname": "CDN CE Site.",
            "x-f5xc-description-short": "Site at which the purge operation was performed.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Start time of Purge Operation.",
            "title": "Start time of Purge Operation",
            "x-displayname": "Cache Purge Start Time.",
            "x-ves-example": "2019-09-23T12:30:11.733Z.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "2019-09-23T12:30:11.733Z",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnPurgeOperationItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnServiceOperationItem": {
        "type": "object",
        "description": "Service Operation Item.",
        "title": "Service Operation Item",
        "x-displayname": "Service Operation Item.",
        "x-ves-oneof-field-op_status": "[\"purge\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.ServiceOperationItem",
        "properties": {
          "purge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_cdnPurgeOperationItem"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "service_op_id": {
            "type": "integer",
            "description": "Operation ID for which status is requested. This for example is the purge_request_id obtained in the response to the CachePurge Request.",
            "title": "Service Operation ID",
            "format": "int64",
            "x-displayname": "Service Operation ID.",
            "x-ves-example": "101",
            "x-f5xc-example": "101",
            "x-f5xc-description-short": "Operation ID for which status is requested. This for example is the purge_request_id obtained in the response to the CachePurge Request.",
            "x-f5xc-description-medium": "Operation ID for which status is requested. This for example is the purge_request_id obtained in the response to the CachePurge Request.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "status": {
            "type": "string",
            "description": "Status of the operation command.",
            "title": "Service Operation Status",
            "x-displayname": "Service Operation Status.",
            "x-f5xc-example": "success",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnServiceOperationItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnServiceOperationsItem": {
        "type": "object",
        "description": "List of Service Operations.",
        "title": "Service Operations Item",
        "x-displayname": "List of Service Operations.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.ServiceOperationsItem",
        "properties": {
          "created_time": {
            "type": "string",
            "description": "The service created time.",
            "title": "created time",
            "x-displayname": "Created Time.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "modified_time": {
            "type": "string",
            "description": "The service modified time.",
            "title": "modified time",
            "x-displayname": "Modified Time.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "service_op_id": {
            "type": "integer",
            "description": "The ID of the operation command.",
            "title": "service operation id",
            "format": "int64",
            "x-displayname": "Service Operation ID.",
            "x-f5xc-example": "\"\"",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "svc_version": {
            "type": "integer",
            "description": "The version info of the service.",
            "title": "svc version",
            "format": "int64",
            "x-displayname": "Service Version.",
            "x-f5xc-example": "\"\"",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnServiceOperationsItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_cdnServiceOperationsTimeRange": {
        "type": "object",
        "description": "Option to specify lastn or start-end time.",
        "title": "Service Operations Time Range",
        "x-displayname": "Service Operations OPTIONS.",
        "x-ves-proto-message": "ves.io.schema.views.common_cdn.ServiceOperationsTimeRange",
        "properties": {
          "finish_time": {
            "type": "string",
            "description": "A finish time for the time range in which the service operation status is requested.\nFormat: unix_timestamp|RFC 3339.",
            "title": "Finish time of Service Operations",
            "x-displayname": "Service Operation Finish Time.",
            "x-ves-example": "2019-09-23T12:32:11.733Z.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "2019-09-23T12:32:11.733Z",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Finish time for the time range in which the service operation status is requested.",
            "x-f5xc-description-medium": "Finish time for the time range in which the service operation status is requested. Format: unix_timestamp|RFC 3339.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "A start time for the time range in which the service operation status is requested.",
            "title": "Start time of Service Operations",
            "x-displayname": "Service Operation Start Time.",
            "x-ves-example": "2019-09-23T12:30:11.733Z.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "2019-09-23T12:30:11.733Z",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Start time for the time range in which the service operation status is requested.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Option to specify lastn or start-end time.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_cdnServiceOperationsTimeRange",
          "required_fields": [
            "finish_time",
            "start_time"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"finish_time\": \"2019-09-23T12:32:11.733Z\",\n  \"start_time\": \"2019-09-23T12:30:11.733Z\"\n}",
          "example_yaml": "finish_time: '2019-09-23T12:32:11.733Z'\nstart_time: '2019-09-23T12:30:11.733Z'"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityAppEndpointType": {
        "type": "object",
        "description": "Application Endpoint.",
        "title": "AppEndpointType",
        "x-displayname": "Application Endpoint.",
        "x-ves-displayorder": "1,2,13,3,5,4,20,21,8,12,16",
        "x-ves-oneof-field-app_traffic_type_choice": "[\"mobile\",\"web\",\"web_mobile\"]",
        "x-ves-oneof-field-domain_matcher_choice": "[\"any_domain\",\"domain\"]",
        "x-ves-oneof-field-flow_label_choice": "[\"flow_label\",\"undefined_flow_label\"]",
        "x-ves-oneof-field-goodbot_choice": "[\"allow_good_bots\",\"mitigate_good_bots\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.AppEndpointType",
        "properties": {
          "allow_good_bots": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow good bots.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mitigate_good_bots"
            ]
          },
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "domain"
            ]
          },
          "domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainType"
              }
            ],
            "x-f5xc-example": "example.com",
            "x-f5xc-description-short": "Domain name for routing and identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          },
          "flow_label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelCategoriesChoiceType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "undefined_flow_label"
            ]
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_methods": {
            "type": "array",
            "description": "List of HTTP methods.",
            "title": "HTTP Methods",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/schemaBotHttpMethod"
            },
            "x-displayname": "HTTP Methods.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.in": "[0,1,3,4,10]",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.in": "[0,1,3,4,10]",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 5,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "source": "minimum_configs",
              "enumValues": [
                "METHOD_GET",
                "METHOD_POST",
                "METHOD_PUT",
                "METHOD_PATCH",
                "METHOD_DELETE",
                "METHOD_HEAD",
                "METHOD_OPTIONS"
              ],
              "description": "HTTP methods for bot defense endpoint matching"
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mitigate_good_bots": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for mitigate good bots.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_good_bots"
            ]
          },
          "mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyShapeBotMitigationAction"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mobile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "web",
              "web_mobile"
            ]
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityURLScheme"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "title": "query params",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Query Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "undefined_flow_label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "flow_label"
            ]
          },
          "web": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mobile",
              "web_mobile"
            ]
          },
          "web_mobile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityWebMobileTrafficType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mobile",
              "web"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityAppEndpointType",
          "required_fields": [
            "http_methods"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"http_methods\": [\n    \"METHOD_ANY\"\n  ]\n}",
          "example_yaml": "http_methods:\n- METHOD_ANY"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityBotAdvancedMobileSDKConfigType": {
        "type": "object",
        "description": "Mobile Request Identifier Headers.",
        "title": "BotAdvancedMobileSDKConfigType",
        "x-displayname": "Mobile Request Identifier Headers.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.BotAdvancedMobileSDKConfigType",
        "properties": {
          "mobile_identifier": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityMobileTrafficIdentifierType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityBotAdvancedMobileSDKConfigType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityBotDefenseAdvancedType": {
        "type": "object",
        "description": "Bot Defense Advanced.",
        "title": "BotDefenseAdvancedType",
        "x-displayname": "Bot Defense Advanced.",
        "x-ves-oneof-field-java_script_choice": "[\"disable_js_insert\",\"js_insert_all_pages\",\"js_insert_all_pages_except\",\"js_insertion_rules\"]",
        "x-ves-oneof-field-mobile_sdk_choice": "[\"disable_mobile_sdk\",\"mobile_sdk_config\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.BotDefenseAdvancedType",
        "properties": {
          "disable_js_insert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable js insert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_insert_all_pages",
              "js_insert_all_pages_except",
              "js_insertion_rules"
            ]
          },
          "disable_mobile_sdk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mobile_sdk_config"
            ]
          },
          "js_insert_all_pages": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeJavaScriptInsertAllType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js insert all pages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages_except",
              "js_insertion_rules"
            ]
          },
          "js_insert_all_pages_except": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeJavaScriptInsertAllWithExceptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js insert all pages except.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages",
              "js_insertion_rules"
            ]
          },
          "js_insertion_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeJavaScriptInsertType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages",
              "js_insert_all_pages_except"
            ]
          },
          "mobile": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "mobile",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "mobile_sdk_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityBotAdvancedMobileSDKConfigType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_mobile_sdk"
            ]
          },
          "web": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "web",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityBotDefenseAdvancedType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityCSDJavaScriptInsertAllWithExceptionsType": {
        "type": "object",
        "description": "Insert Client-Side Defense JavaScript in all pages with the exceptions.",
        "title": "CSDJavaScriptInsertAllWithExceptionsType",
        "x-displayname": "Insert JavaScript in All Pages with the Exceptions.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.CSDJavaScriptInsertAllWithExceptionsType",
        "properties": {
          "exclude_list": {
            "type": "array",
            "description": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "title": "exclude_list",
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/common_securityShapeJavaScriptExclusionRule"
            },
            "x-displayname": "Exclude Pages.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Insert Client-Side Defense JavaScript in all pages with the exceptions.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityCSDJavaScriptInsertAllWithExceptionsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityCSDJavaScriptInsertType": {
        "type": "object",
        "description": "This defines custom JavaScript insertion rules for Client-Side Defense Policy.",
        "title": "CSDJavaScriptInsertType",
        "x-displayname": "JavaScript Custom Insertion Rules.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.CSDJavaScriptInsertType",
        "properties": {
          "exclude_list": {
            "type": "array",
            "description": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "title": "exclude_list",
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/common_securityShapeJavaScriptExclusionRule"
            },
            "x-displayname": "Exclude Paths.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rules": {
            "type": "array",
            "description": "Required list of pages to insert Client-Side Defense client JavaScript.",
            "title": "rules",
            "minItems": 1,
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/common_securityCSDJavaScriptInsertionRule"
            },
            "x-displayname": "JavaScript Insertions.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Required list of pages to insert Client-Side Defense client JavaScript.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 128,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines custom JavaScript insertion rules for Client-Side Defense Policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityCSDJavaScriptInsertType",
          "required_fields": [
            "rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"rules\": [\n    {}\n  ]\n}",
          "example_yaml": "rules:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityCSDJavaScriptInsertionRule": {
        "type": "object",
        "description": "This defines a rule for Client-Side Defense JavaScript insertion.",
        "title": "CSDJavaScriptInsertionRule",
        "x-displayname": "JavaScript Insertion Rule.",
        "x-ves-oneof-field-domain_matcher_choice": "[\"any_domain\",\"domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.CSDJavaScriptInsertionRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "domain"
            ]
          },
          "domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainType"
              }
            ],
            "x-f5xc-example": "example.com",
            "x-f5xc-description-short": "Domain name for routing and identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines a rule for Client-Side Defense JavaScript insertion.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityCSDJavaScriptInsertionRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityClientSideDefensePolicyType": {
        "type": "object",
        "description": "This defines various configuration OPTIONS for Client-Side Defense policy.",
        "title": "ClientSideDefensePolicyType",
        "x-displayname": "Client-Side Defense Policy.",
        "x-ves-oneof-field-java_script_choice": "[\"disable_js_insert\",\"js_insert_all_pages\",\"js_insert_all_pages_except\",\"js_insertion_rules\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ClientSideDefensePolicyType",
        "properties": {
          "disable_js_insert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable js insert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_insert_all_pages",
              "js_insert_all_pages_except",
              "js_insertion_rules"
            ]
          },
          "js_insert_all_pages": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js insert all pages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages_except",
              "js_insertion_rules"
            ]
          },
          "js_insert_all_pages_except": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityCSDJavaScriptInsertAllWithExceptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js insert all pages except.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages",
              "js_insertion_rules"
            ]
          },
          "js_insertion_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityCSDJavaScriptInsertType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages",
              "js_insert_all_pages_except"
            ]
          }
        },
        "x-f5xc-description-short": "Defines various configuration OPTIONS for Client-Side Defense policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityClientSideDefensePolicyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityClientSideDefenseType": {
        "type": "object",
        "description": "This defines various configuration OPTIONS for Client-Side Defense Policy.",
        "title": "ClientSideDefenseType",
        "x-displayname": "Client-Side Defense.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ClientSideDefenseType",
        "properties": {
          "policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityClientSideDefensePolicyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines various configuration OPTIONS for Client-Side Defense Policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityClientSideDefenseType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityDDoSMitigationRule__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "DDoS Mitigation Rule specifies the sources to be blocked.",
        "title": "DDoSMitigationRule",
        "x-displayname": "DDoS Mitigation Rule.",
        "x-ves-displayorder": "1,2,7,10",
        "x-ves-oneof-field-mitigation_action": "[\"block\"]",
        "x-ves-oneof-field-mitigation_choice": "[\"ddos_client_source\",\"ip_prefix_list\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.DDoSMitigationRule",
        "properties": {
          "block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ddos_client_source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityDDoSClientSource"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_prefix_list"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "title": "expiration timestamp",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ddos_client_source"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "DDoS Mitigation Rule specifies the sources to be blocked.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityDDoSMitigationRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityDeleteDoSAutoMitigationRuleRsp": {
        "type": "object",
        "description": "Response of DELETE DoS Auto-Mitigation Rule API.",
        "title": "Delete DoS Auto-Mitigation Rule response",
        "x-displayname": "DELETE DoS Auto-Mitigation Rule response.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.DeleteDoSAutoMitigationRuleRsp",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the deleted DoS Auto-Mitigation loadbalancer Rule.",
            "title": "DoS Auto-Mitigation Rule Name",
            "x-displayname": "DoS Auto-Mitigation Rule Name.",
            "x-ves-example": "Dos-auto-mitigation-VES-I/O-HTTP-loadbalancer-ce22.",
            "x-f5xc-example": "dos-auto-mitigation-ves-io-http-loadbalancer-ce22",
            "x-f5xc-description-short": "Name of the deleted DoS Auto-Mitigation loadbalancer Rule.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Response of DELETE DoS Auto-Mitigation Rule API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityDeleteDoSAutoMitigationRuleRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityGetDoSAutoMitigationRulesRsp": {
        "type": "object",
        "description": "Response of GET DDoS Auto-Mitigation Rules API.",
        "title": "Get DoS Auto-Mitigation Rules response",
        "x-displayname": "GET DDoS Auto-Mitigation Rules Response.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.GetDoSAutoMitigationRulesRsp",
        "properties": {
          "dos_automitigation_rules": {
            "type": "array",
            "title": "DoS Auto-Mitigation Rules",
            "items": {
              "$ref": "#/components/schemas/dos_mitigationDoSMitigationRuleInfo"
            },
            "x-displayname": "DoS Auto-Mitigation Rules.",
            "description": "Rule or policy definition",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response of GET DDoS Auto-Mitigation Rules API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityGetDoSAutoMitigationRulesRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityGetSecurityConfigRsp": {
        "type": "object",
        "title": "Get Security Config Response",
        "x-displayname": "GET Security Config Response.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.GetSecurityConfigRsp",
        "properties": {
          "api_protection": {
            "type": "array",
            "title": "API Protection Configured",
            "items": {
              "type": "string"
            },
            "x-displayname": "API Protection Configured.",
            "description": "API version or group",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "app_firewall": {
            "type": "array",
            "title": "App Firewall Configured",
            "items": {
              "type": "string"
            },
            "x-displayname": "App Firewall Configured.",
            "description": "Configuration parameter for app firewall",
            "x-f5xc-description-short": "Configuration parameter for app firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "app_firewall_per_route": {
            "type": "array",
            "title": "App Firewall Configured Per Route",
            "items": {
              "type": "string"
            },
            "x-displayname": "List of Load Balancers Where App Firewall is Configured Per Route.",
            "description": "Configuration parameter for app firewall per route",
            "x-f5xc-description-short": "Configuration parameter for app firewall per route.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_defense": {
            "type": "array",
            "title": "Bot Defense Configured",
            "items": {
              "type": "string"
            },
            "x-displayname": "Bot Defense Configured.",
            "description": "Configuration parameter for bot defense",
            "x-f5xc-description-short": "Configuration parameter for bot defense.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ddos_detection": {
            "type": "array",
            "title": "DDOS Detection Configured",
            "items": {
              "type": "string"
            },
            "x-displayname": "DDoS Detection Configured.",
            "description": "Configuration parameter for ddos detection",
            "x-f5xc-description-short": "Configuration parameter for ddos detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "protected": {
            "type": "array",
            "title": "Protected LoadBalancers Configured",
            "items": {
              "type": "string"
            },
            "x-displayname": "List of Load Balancers Secured.",
            "description": "Protection or security configuration",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityGetSecurityConfigRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityMalwareProtectionPolicy": {
        "type": "object",
        "description": "Malware Protection protects Web Apps and APIs, from malicious file uploads by scanning files in real-time.",
        "title": "MalwareProtectionPolicy",
        "x-displayname": "Malware Protection Policy.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.MalwareProtectionPolicy",
        "properties": {
          "malware_protection_rules": {
            "type": "array",
            "description": "Configure the match criteria to trigger Malware Protection Scan.",
            "title": "rules",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/common_securityMalwareProtectionRule"
            },
            "x-displayname": "Malware Detection Rules.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Configure the match criteria to trigger Malware Protection Scan.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Malware Protection protects Web Apps and APIs, from malicious file uploads by scanning files in real-time.",
        "x-f5xc-description-medium": "Malware Protection protects Web Apps and APIs, from malicious file uploads by scanning files in real-time.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityMalwareProtectionPolicy",
          "required_fields": [
            "malware_protection_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"malware_protection_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "malware_protection_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityMalwareProtectionRule": {
        "type": "object",
        "description": "Configure the match criteria to trigger Malware Protection Scan.",
        "title": "MalwareProtectionRule",
        "x-displayname": "Malware Protection Rules.",
        "x-ves-displayorder": "1,2,3,4,5,6",
        "x-ves-proto-message": "ves.io.schema.views.common_security.MalwareProtectionRule",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainMatcherType"
              }
            ],
            "x-f5xc-example": "example.com",
            "x-f5xc-description-short": "Domain name for routing and identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "http_methods": {
            "type": "array",
            "description": "Methods to be matched.",
            "title": "HTTP Methods",
            "items": {
              "$ref": "#/components/schemas/schemaHttpMethod"
            },
            "x-displayname": "HTTP Methods.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Configure the match criteria to trigger Malware Protection Scan.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityMalwareProtectionRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityMobileIdentifier": {
        "type": "string",
        "description": "Mobile identifier type\n\n- HEADERS: Headers\n\nHeaders.",
        "title": "MobileIdentifier",
        "enum": [
          "HEADERS"
        ],
        "default": "HEADERS",
        "x-displayname": "Mobile Identifier.",
        "x-ves-proto-enum": "ves.io.schema.views.common_security.MobileIdentifier",
        "x-f5xc-description-short": "Mobile identifier type - HEADERS: Headers Headers.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityMobileIdentifier",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"HEADERS\"",
          "example_yaml": "HEADERS\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityMobileSDKConfigType": {
        "type": "object",
        "description": "Mobile SDK configuration.",
        "title": "MobileSDKConfigType",
        "x-displayname": "Mobile SDK Configuration.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.MobileSDKConfigType",
        "properties": {
          "mobile_identifier": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityMobileTrafficIdentifierType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityMobileSDKConfigType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityMobileTrafficIdentifierType": {
        "type": "object",
        "description": "Mobile traffic identifier type.",
        "title": "MobileTrafficIdentifierType",
        "x-displayname": "Mobile Traffic Identifier.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.MobileTrafficIdentifierType",
        "properties": {
          "headers": {
            "type": "array",
            "description": "Headers that can be used to identify mobile traffic.",
            "title": "Mobile headers",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/policyHeaderMatcherTypeBasic"
            },
            "x-displayname": "Headers",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Headers that can be used to identify mobile traffic.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 0,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityMobileTrafficIdentifierType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securitySensitiveDataPolicySettings": {
        "type": "object",
        "description": "Settings for data type policy.",
        "title": "SensitiveDataPolicySettings",
        "x-displayname": "Sensitive Data Discovery.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.SensitiveDataPolicySettings",
        "properties": {
          "sensitive_data_policy_ref": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "sensitive_data_policy",
                "field_path": "sensitive_data_policy_ref",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securitySensitiveDataPolicySettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeBotDefensePolicyType": {
        "type": "object",
        "description": "This defines various configuration OPTIONS for Bot Defense policy.",
        "title": "ShapeShapeBotDefensePolicyType",
        "x-displayname": "Bot Defense Policy.",
        "x-ves-oneof-field-java_script_choice": "[\"disable_js_insert\",\"js_insert_all_pages\",\"js_insert_all_pages_except\",\"js_insertion_rules\"]",
        "x-ves-oneof-field-mobile_sdk_choice": "[\"disable_mobile_sdk\",\"mobile_sdk_config\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ShapeBotDefensePolicyType",
        "properties": {
          "disable_js_insert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable js insert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_insert_all_pages",
              "js_insert_all_pages_except",
              "js_insertion_rules"
            ]
          },
          "disable_mobile_sdk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mobile_sdk_config"
            ]
          },
          "javascript_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaJavaScriptMode"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "js_download_path": {
            "type": "string",
            "description": "Customize Bot Defense Client JavaScript path. If not specified, default `/common.js`",
            "title": "js_download_path",
            "x-displayname": "JavaScript Download Path.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true"
            },
            "x-f5xc-description-short": "Customize Bot Defense Client JavaScript path. If not specified, default",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "js_insert_all_pages": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeJavaScriptInsertAllType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js insert all pages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages_except",
              "js_insertion_rules"
            ]
          },
          "js_insert_all_pages_except": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeJavaScriptInsertAllWithExceptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js insert all pages except.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages",
              "js_insertion_rules"
            ]
          },
          "js_insertion_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeJavaScriptInsertType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_js_insert",
              "js_insert_all_pages",
              "js_insert_all_pages_except"
            ]
          },
          "mobile_sdk_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityMobileSDKConfigType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_mobile_sdk"
            ]
          },
          "protected_app_endpoints": {
            "type": "array",
            "description": "List of protected endpoints. Limit: Approx '128 endpoints per Load Balancer (LB)' upto 4 LBs, '32 endpoints per LB' after 4 LBs.",
            "title": "AppEndpointType",
            "minItems": 1,
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/common_securityAppEndpointType"
            },
            "x-displayname": "App Endpoint Type.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of protected endpoints. Limit: Approx '128 endpoints per Load Balancer (LB)' upto 4 LBs, '32 endpoints per LB' after 4 LBs.",
            "x-f5xc-description-medium": "List of protected endpoints. Limit: Approx '128 endpoints per Load Balancer (LB)' upto 4 LBs, '32 endpoints per LB' after 4 LBs.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines various configuration OPTIONS for Bot Defense policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeBotDefensePolicyType",
          "required_fields": [
            "protected_app_endpoints"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"protected_app_endpoints\": [\n    {\n      \"http_methods\": [\n        \"METHOD_ANY\"\n      ]\n    }\n  ]\n}",
          "example_yaml": "protected_app_endpoints:\n- http_methods:\n  - METHOD_ANY"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeBotDefenseRegion": {
        "type": "string",
        "description": "Defines a selection for Bot Defense region\n\n- AUTO: AUTO\n\nAutomatic selection based on client IP address\n- US: US\n\nUS region\n- EU: EU\n\nEuropean Union region\n- ASIA: ASIA\n\nAsia region.",
        "title": "ShapeBotDefenseRegion",
        "enum": [
          "AUTO",
          "US",
          "EU",
          "ASIA"
        ],
        "default": "AUTO",
        "x-displayname": "Bot Defense Region.",
        "x-ves-proto-enum": "ves.io.schema.views.common_security.ShapeBotDefenseRegion",
        "x-f5xc-description-short": "Defines a selection for Bot Defense region - AUTO: AUTO Automatic selection based on client IP address - US: US US region - EU: EU European Union...",
        "x-f5xc-description-medium": "Defines a selection for Bot Defense region - AUTO: AUTO Automatic selection based on client IP address - US: US US region - EU: EU European Union region - ASIA: ASIA Asia region.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeBotDefenseRegion",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"AUTO\"",
          "example_yaml": "AUTO\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeBotDefenseType": {
        "type": "object",
        "description": "This defines various configuration OPTIONS for Bot Defense Policy.",
        "title": "ShapeBotDefenseType",
        "x-displayname": "Bot Defense.",
        "x-ves-oneof-field-cors_support_choice": "[\"disable_cors_support\",\"enable_cors_support\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ShapeBotDefenseType",
        "properties": {
          "disable_cors_support": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_cors_support"
            ]
          },
          "enable_cors_support": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_cors_support"
            ]
          },
          "policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeBotDefensePolicyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "regional_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeBotDefenseRegion"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "timeout": {
            "type": "integer",
            "description": "The timeout for the inference check, in milliseconds.",
            "title": "timeout",
            "format": "int64",
            "x-displayname": "Timeout",
            "x-ves-example": "300",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "60000"
            },
            "x-f5xc-example": "300",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "60000"
            },
            "x-f5xc-description-short": "The timeout for the inference check, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 60000,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines various configuration OPTIONS for Bot Defense Policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeBotDefenseType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeJavaScriptExclusionRule": {
        "type": "object",
        "description": "Define JavaScript insertion exclusion rule.",
        "title": "ShapeJavaScriptExclusionRule",
        "x-displayname": "JavaScript Insertion Exclusion Rule.",
        "x-ves-oneof-field-domain_matcher_choice": "[\"any_domain\",\"domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ShapeJavaScriptExclusionRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "domain"
            ]
          },
          "domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainType"
              }
            ],
            "x-f5xc-example": "example.com",
            "x-f5xc-description-short": "Domain name for routing and identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Define JavaScript insertion exclusion rule.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeJavaScriptExclusionRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeJavaScriptInsertAllType": {
        "type": "object",
        "description": "Insert Bot Defense JavaScript in all pages.",
        "title": "ShapeJavaScriptInsertAllType",
        "x-displayname": "Insert Bot Defense JavaScript in All Pages.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ShapeJavaScriptInsertAllType",
        "properties": {
          "javascript_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_securityJavaScriptLocation"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Insert Bot Defense JavaScript in all pages.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeJavaScriptInsertAllType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeJavaScriptInsertAllWithExceptionsType": {
        "type": "object",
        "description": "Insert Bot Defense JavaScript in all pages with the exceptions.",
        "title": "ShapeJavaScriptInsertAllWithExceptionsType",
        "x-displayname": "Insert JavaScript in All Pages with the Exceptions.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ShapeJavaScriptInsertAllWithExceptionsType",
        "properties": {
          "exclude_list": {
            "type": "array",
            "description": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "title": "exclude_list",
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/common_securityShapeJavaScriptExclusionRule"
            },
            "x-displayname": "Exclude Pages.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "javascript_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_securityJavaScriptLocation"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Insert Bot Defense JavaScript in all pages with the exceptions.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeJavaScriptInsertAllWithExceptionsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeJavaScriptInsertType": {
        "type": "object",
        "description": "This defines custom JavaScript insertion rules for Bot Defense Policy.",
        "title": "ShapeJavaScriptInsertType",
        "x-displayname": "JavaScript Custom Insertion Rules.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ShapeJavaScriptInsertType",
        "properties": {
          "exclude_list": {
            "type": "array",
            "description": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "title": "exclude_list",
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/common_securityShapeJavaScriptExclusionRule"
            },
            "x-displayname": "Exclude Paths.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Optional JavaScript insertions exclude list of domain and path matchers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rules": {
            "type": "array",
            "description": "Required list of pages to insert Bot Defense client JavaScript.",
            "title": "rules",
            "minItems": 1,
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/common_securityShapeJavaScriptInsertionRule"
            },
            "x-displayname": "JavaScript Insertions.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Required list of pages to insert Bot Defense client JavaScript.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 128,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines custom JavaScript insertion rules for Bot Defense Policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeJavaScriptInsertType",
          "required_fields": [
            "rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"rules\": [\n    {}\n  ]\n}",
          "example_yaml": "rules:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityShapeJavaScriptInsertionRule": {
        "type": "object",
        "description": "This defines a rule for Bot Defense JavaScript insertion.",
        "title": "ShapeJavaScriptInsertionRule",
        "x-displayname": "JavaScript Insertion Rule.",
        "x-ves-oneof-field-domain_matcher_choice": "[\"any_domain\",\"domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_security.ShapeJavaScriptInsertionRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "domain"
            ]
          },
          "domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainType"
              }
            ],
            "x-f5xc-example": "example.com",
            "x-f5xc-description-short": "Domain name for routing and identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          },
          "javascript_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_securityJavaScriptLocation"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines a rule for Bot Defense JavaScript insertion.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityShapeJavaScriptInsertionRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityURLScheme": {
        "type": "string",
        "description": "SchemeType is used to indicate URL scheme.\n\n- BOTH: BOTH\n\nURL scheme for HTTPS:// or HTTP://.\n- HTTP: HTTP\n\nURL scheme HTTP:// only.\n- HTTPS: HTTPS\n\nURL scheme HTTPS:// only.",
        "title": "URLSchemeType",
        "enum": [
          "BOTH",
          "HTTP",
          "HTTPS"
        ],
        "default": "BOTH",
        "x-displayname": "URL Scheme.",
        "x-ves-proto-enum": "ves.io.schema.views.common_security.URLScheme",
        "x-f5xc-description-short": "SchemeType is used to indicate URL scheme. - BOTH: BOTH URL scheme for HTTPS:// or HTTP://. - HTTP: HTTP URL scheme HTTP:// only. - HTTPS: HTTPS...",
        "x-f5xc-description-medium": "SchemeType is used to indicate URL scheme. - BOTH: BOTH URL scheme for HTTPS:// or HTTP://. - HTTP: HTTP URL scheme HTTP:// only. - HTTPS: HTTPS URL scheme HTTPS:// only.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityURLScheme",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"BOTH\"",
          "example_yaml": "BOTH\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_securityWebMobileTrafficType": {
        "type": "object",
        "description": "Web and Mobile traffic type.",
        "title": "WebMobileTrafficType",
        "x-displayname": "Web and Mobile traffic type.",
        "x-ves-proto-message": "ves.io.schema.views.common_security.WebMobileTrafficType",
        "properties": {
          "mobile_identifier": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityMobileIdentifier"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_securityWebMobileTrafficType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIEndpointProtectionRule__ves_io_schema_views_http_loadbalancer": {
        "type": "object",
        "description": "API Protection Rule for a specific endpoint.",
        "title": "API Endpoint Protection Rule",
        "x-displayname": "API Endpoint Protection Rule.",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIEndpointProtectionRule",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIProtectionRuleAction__ves_io_schema_views_http_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_endpoint_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_endpoint_path": {
            "type": "string",
            "description": "The endpoint (path) of the request.",
            "title": "api endpoint path",
            "maxLength": 1024,
            "x-displayname": "API Endpoint.",
            "x-ves-example": "/endpoint1.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/endpoint1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "client_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyClientMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.\nFor example: api.example.com.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-example": "api.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-example": "api.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain. For",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-description-short": "API Protection Rule for a specific endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIEndpointProtectionRule",
          "required_fields": [
            "api_endpoint_path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_endpoint_path\": \"/endpoint1\"\n}",
          "example_yaml": "api_endpoint_path: /endpoint1"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIGroupProtectionRule": {
        "type": "object",
        "description": "API Protection Rule for a group or a base URL.",
        "title": "API Group Protection  Rule",
        "x-displayname": "API Group Protection Rule.",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIGroupProtectionRule",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIProtectionRuleAction__ves_io_schema_views_http_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_group": {
            "type": "string",
            "description": "API groups derived from API Definition swaggers.\nFor example oas-all-operations including all paths and methods from the swaggers, oas-base-URLs covering all requests under base-paths from the swaggers.\nCustom groups can be created if user tags paths or operations with \"x-F5 Distributed Cloud-API-group\" extensions inside swaggers.",
            "title": "api_group",
            "maxLength": 128,
            "x-displayname": "API Group",
            "x-ves-example": "Oas-all-operations.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "oas-all-operations",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "API groups derived from API Definition swaggers.",
            "x-f5xc-description-medium": "API groups derived from API Definition swaggers. For example oas-all-operations including all paths and methods from the swaggers, oas-base-URLs covering all requests under base-paths from the swaggers. Custom groups can be created if user tags paths or operations with \"x-F5 Distributed...",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "base_path": {
            "type": "string",
            "description": "Prefix of the request path.\nFor example: /v1.",
            "title": "base path",
            "maxLength": 128,
            "x-displayname": "Base Path",
            "x-ves-example": "/v1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "/v1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "client_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyClientMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.\nFor example: api.example.com.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-example": "api.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-example": "api.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain. For",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-description-short": "API Protection Rule for a group or a base URL.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIGroupProtectionRule",
          "required_fields": [
            "base_path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"base_path\": \"/v1\"\n}",
          "example_yaml": "base_path: /v1"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIGroups": {
        "type": "object",
        "title": "api groups",
        "x-displayname": "API Groups.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIGroups",
        "properties": {
          "api_groups": {
            "type": "array",
            "description": "Group or collection configuration",
            "title": "api group",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "API Groups.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIGroups",
          "required_fields": [
            "api_groups"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_groups\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "api_groups:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIProtectionRuleAction__ves_io_schema_views_http_loadbalancer": {
        "type": "object",
        "description": "The action to take if the input request matches the rule.",
        "title": "API Protection Rule Action",
        "x-displayname": "API Protection Rule Action.",
        "x-ves-oneof-field-action": "[\"allow\",\"deny\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIProtectionRuleAction",
        "properties": {
          "allow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "deny"
            ]
          },
          "deny": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow"
            ]
          }
        },
        "x-f5xc-description-short": "The action to take if the input request matches the rule.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIProtectionRuleAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIProtectionRules": {
        "type": "object",
        "description": "API Protection Rules.",
        "title": "API Protection Rules",
        "x-displayname": "API Protection Rules.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIProtectionRules",
        "properties": {
          "api_endpoint_rules": {
            "type": "array",
            "description": "This category defines specific rules per API endpoints.\nIf request matches any of these rules, skipping second category rules.",
            "title": "api_endpoint_rules",
            "maxItems": 20,
            "items": {
              "$ref": "#/components/schemas/common_wafAPIEndpointProtectionRule__ves_io_schema_views_http_loadbalancer"
            },
            "x-displayname": "API Endpoints.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Category defines specific rules per API endpoints. If request matches any of these rules, skipping second category rules.",
            "x-f5xc-description-medium": "Category defines specific rules per API endpoints. If request matches any of these rules, skipping second category rules.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 20,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_groups_rules": {
            "type": "array",
            "description": "This category includes rules per API group or Server URL.\nFor API groups, refer to API Definition which includes API groups derived from uploaded swaggers.",
            "title": "api_groups_rules",
            "maxItems": 20,
            "items": {
              "$ref": "#/components/schemas/common_wafAPIGroupProtectionRule"
            },
            "x-displayname": "Server URLs and API Groups.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Category includes rules per API group or Server URL. For API groups, refer to API Definition which includes API groups derived from uploaded swaggers.",
            "x-f5xc-description-medium": "Category includes rules per API group or Server URL. For API groups, refer to API Definition which includes API groups derived from uploaded swaggers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 20,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIProtectionRules",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPIRateLimit": {
        "type": "object",
        "title": "APIRateLimit",
        "x-displayname": "APIRateLimit.",
        "x-ves-oneof-field-ip_allowed_list_choice": "[\"bypass_rate_limiting_rules\",\"custom_ip_allowed_list\",\"ip_allowed_list\",\"no_ip_allowed_list\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APIRateLimit",
        "properties": {
          "api_endpoint_rules": {
            "type": "array",
            "description": "Ordered endpoint-specific rate-limit rules. Each rule must choose exactly one rate_limiter_choice: inline_rate_limiter or ref_rate_limiter.",
            "title": "api_endpoint_policy",
            "maxItems": 20,
            "items": {
              "$ref": "#/components/schemas/common_wafApiEndpointRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "API Endpoints.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Ordered endpoint-specific rate-limit rules. Each rule must choose exactly one rate_limiter_choice: inline_rate_limiter or ref_rate_limiter.",
            "x-f5xc-description-medium": "Ordered endpoint-specific rate-limit rules. Each rule must choose exactly one rate_limiter_choice: inline_rate_limiter or ref_rate_limiter.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 20,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bypass_rate_limiting_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafBypassRateLimitingRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_ip_allowed_list",
              "ip_allowed_list",
              "no_ip_allowed_list"
            ]
          },
          "custom_ip_allowed_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafCustomIpAllowedList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bypass_rate_limiting_rules",
              "ip_allowed_list",
              "no_ip_allowed_list"
            ]
          },
          "ip_allowed_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsPrefixStringListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bypass_rate_limiting_rules",
              "custom_ip_allowed_list",
              "no_ip_allowed_list"
            ]
          },
          "no_ip_allowed_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bypass_rate_limiting_rules",
              "custom_ip_allowed_list",
              "ip_allowed_list"
            ]
          },
          "server_url_rules": {
            "type": "array",
            "description": "Ordered domain or base-path rules for path-scoped rate limiting. Each rule must choose exactly one rate_limiter_choice: inline_rate_limiter or ref_rate_limiter.",
            "title": "server_url_policy",
            "maxItems": 20,
            "items": {
              "$ref": "#/components/schemas/common_wafServerUrlRule"
            },
            "x-displayname": "Server URLs.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Ordered domain or base-path rules for path-scoped rate limiting.",
            "x-f5xc-description-medium": "Ordered domain or base-path rules for path-scoped rate limiting. Each rule must choose exactly one rate_limiter_choice: inline_rate_limiter or ref_rate_limiter.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 20,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPIRateLimit",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAPISpecificationSettings": {
        "type": "object",
        "description": "Settings for API specification (API definition, OpenAPI validation, etc.)",
        "title": "APISpecificationSettings",
        "x-displayname": "API Specification and Validation.",
        "x-ves-oneof-field-validation_target_choice": "[\"validation_all_spec_endpoints\",\"validation_custom_list\",\"validation_disabled\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.APISpecificationSettings",
        "properties": {
          "api_definition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "api_definition",
                "field_path": "api_definition",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "validation_all_spec_endpoints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationAllSpecEndpointsSettings__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "validation_custom_list",
              "validation_disabled"
            ]
          },
          "validation_custom_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafValidateApiBySpecRule"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "validation_all_spec_endpoints",
              "validation_disabled"
            ]
          },
          "validation_disabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "validation_all_spec_endpoints",
              "validation_custom_list"
            ]
          }
        },
        "x-f5xc-description-short": "Settings for API specification (API definition, OpenAPI validation, etc.).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAPISpecificationSettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiCodeRepos": {
        "type": "object",
        "description": "Select which API repositories represent the LB applications.",
        "title": "API Code Repositories",
        "x-displayname": "API Code Repositories.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiCodeRepos",
        "properties": {
          "api_code_repo": {
            "type": "array",
            "description": "Code repository which contain API endpoints.",
            "title": "API Code Repository",
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "API Code Repository.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Code repository which contain API endpoints.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Select which API repositories represent the LB applications.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiCodeRepos",
          "required_fields": [
            "api_code_repo"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_code_repo\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "api_code_repo:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiCrawler__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "API Crawler message.",
        "title": "API Crawling",
        "x-displayname": "API Crawling.",
        "x-ves-oneof-field-api_crawler": "[\"api_crawler_config\",\"disable_api_crawler\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiCrawler",
        "properties": {
          "api_crawler_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiCrawlerConfiguration__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_crawler"
            ]
          },
          "disable_api_crawler": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_crawler_config"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiCrawler",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiCrawlerConfiguration__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "title": "Crawler Domains Configuration",
        "x-displayname": "Crawler Configure.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiCrawlerConfiguration",
        "properties": {
          "domains": {
            "type": "array",
            "description": "Enter domains and their credentials to allow authenticated API crawling. You can only include domains you own that are associated with this Load Balancer.",
            "title": "Configured API Domains",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/viewscommon_wafDomainConfiguration"
            },
            "x-displayname": "Domains to Crawl.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-description-short": "Enter domains and their credentials to allow authenticated API crawling.",
            "x-f5xc-description-medium": "Enter domains and their credentials to allow authenticated API crawling. You can only include domains you own that are associated with this Load Balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiCrawlerConfiguration",
          "required_fields": [
            "domains"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domains\": [\n    {\n      \"domain\": \"example.com\"\n    }\n  ]\n}",
          "example_yaml": "domains:\n- domain: example.com"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiDiscoveryAdvancedSettings": {
        "type": "object",
        "description": "API Discovery Advanced settings.",
        "title": "ApiDiscoveryAdvancedSettings",
        "x-displayname": "API Discovery Advanced Settings.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiDiscoveryAdvancedSettings",
        "properties": {
          "api_discovery_ref": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "api_discovery",
                "field_path": "api_discovery_ref",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiDiscoveryAdvancedSettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiDiscoveryFromCodeScan": {
        "type": "object",
        "description": "",
        "title": "API Discovery Code Scan",
        "x-displayname": "Select Code Base and Repositories.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiDiscoveryFromCodeScan",
        "properties": {
          "code_base_integrations": {
            "type": "array",
            "description": "Configuration parameter for code base integrations",
            "title": "Code Base Integrations",
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/common_wafCodeBaseIntegrationSelection"
            },
            "x-displayname": "Select Code Base Integrations.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Configuration parameter for code base integrations.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 5,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-required": true,
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiDiscoveryFromCodeScan",
          "required_fields": [
            "code_base_integrations"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"code_base_integrations\": [\n    {}\n  ]\n}",
          "example_yaml": "code_base_integrations:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiDiscoverySetting__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "Specifies the settings used for API discovery.",
        "title": "API Discovery Setting",
        "x-displayname": "API Discovery Setting.",
        "x-ves-displayorder": "1,6,5",
        "x-ves-oneof-field-api_discovery_settings_choice": "[\"custom_api_auth_discovery\",\"default_api_auth_discovery\"]",
        "x-ves-oneof-field-learn_from_redirect_traffic": "[\"disable_learn_from_redirect_traffic\",\"enable_learn_from_redirect_traffic\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiDiscoverySetting",
        "properties": {
          "api_crawler": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiCrawler__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_discovery_from_code_scan": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiDiscoveryFromCodeScan"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "custom_api_auth_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiDiscoveryAdvancedSettings"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_api_auth_discovery"
            ]
          },
          "default_api_auth_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_api_auth_discovery"
            ]
          },
          "disable_learn_from_redirect_traffic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable learn from redirect traffic.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_learn_from_redirect_traffic"
            ]
          },
          "discovered_api_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeDiscoveredAPISettings"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_learn_from_redirect_traffic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable learn from redirect traffic.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_learn_from_redirect_traffic"
            ]
          }
        },
        "x-f5xc-description-short": "Specifies the settings used for API discovery.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiDiscoverySetting",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafApiEndpointRule__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "title": "ApiEndpointRule",
        "x-displayname": "ApiEndpointRule.",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-oneof-field-rate_limiter_choice": "[\"inline_rate_limiter\",\"ref_rate_limiter\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ApiEndpointRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_endpoint_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_endpoint_path": {
            "type": "string",
            "description": "The endpoint (path) of the request.",
            "title": "api endpoint path",
            "maxLength": 1024,
            "x-displayname": "API Endpoint.",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "1024",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "client_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyClientMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "inline_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafInlineRateLimiter__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inline rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Inline rate-limiter settings for this domain, base-path, or endpoint rule. Select this field as the required rate_limiter_choice when no stored rate-limiter object is used.",
            "x-f5xc-conflicts-with": [
              "ref_rate_limiter"
            ]
          },
          "ref_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ref rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Reference to a stored rate-limiter object for this scoped rule. Select exactly one of ref_rate_limiter and inline_rate_limiter.",
            "x-f5xc-conflicts-with": [
              "inline_rate_limiter"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "rate_limiter",
                "field_path": "ref_rate_limiter",
                "gated_by": {
                  "choice": "rate_limiter_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "request_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafApiEndpointRule",
          "required_fields": [
            "api_endpoint_path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_endpoint_path\": \"value\"\n}",
          "example_yaml": "api_endpoint_path: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAudiences": {
        "type": "object",
        "title": "audiences",
        "x-displayname": "Audiences",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.Audiences",
        "properties": {
          "audiences": {
            "type": "array",
            "description": "Configuration parameter for audiences",
            "title": "audiences",
            "minItems": 1,
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "Values",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAudiences",
          "required_fields": [
            "audiences"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"audiences\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "audiences:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafAuthorizationServer": {
        "type": "object",
        "description": "Reference to Authorization Server object.",
        "title": "authorization_server",
        "x-displayname": "Authorization Servers.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.AuthorizationServer",
        "properties": {
          "authorization_servers": {
            "type": "array",
            "description": "Authorization Servers are configured separately in the 'Shared Objects' section of the Web App &\nAPI Protection workspace and used to fetch JWKS for JWT validation.",
            "title": "authorization_server_name",
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Authorization Server Name.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Authorization Servers are configured separately in the 'Shared Objects' section of the Web App & API Protection workspace and used to fetch JWKS...",
            "x-f5xc-description-medium": "Authorization Servers are configured separately in the 'Shared Objects' section of the Web App & API Protection workspace and used to fetch JWKS for JWT validation.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Reference to Authorization Server object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafAuthorizationServer",
          "required_fields": [
            "authorization_servers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"authorization_servers\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "authorization_servers:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafBasePathsType": {
        "type": "object",
        "title": "base_paths",
        "x-displayname": "Base Paths.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.BasePathsType",
        "properties": {
          "base_paths": {
            "type": "array",
            "description": "File system or URL path",
            "title": "base_paths",
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "Prefix Values.",
            "x-ves-example": "/basepath",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.http_path": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "/basepath",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.http_path": "true",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafBasePathsType",
          "required_fields": [
            "base_paths"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"base_paths\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "base_paths:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafBypassRateLimitingRule": {
        "type": "object",
        "title": "BypassRateLimitingRule",
        "x-displayname": "Bypass Rate Limiting Rule.",
        "x-ves-oneof-field-destination_type": "[\"any_url\",\"api_endpoint\",\"api_groups\",\"base_path\"]",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.BypassRateLimitingRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "any_url": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "api_groups",
              "base_path"
            ]
          },
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointDetails"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_url",
              "api_groups",
              "base_path"
            ]
          },
          "api_groups": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIGroups"
              }
            ],
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_url",
              "api_endpoint",
              "base_path"
            ]
          },
          "base_path": {
            "type": "string",
            "description": "Exclusive with [any_url api_endpoint api_groups]\nThe base path which this validation applies to.",
            "title": "base path",
            "maxLength": 128,
            "x-displayname": "Base Path",
            "x-ves-example": "/API/v1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "/api/v1",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [any_url api_endpoint api_groups] The base path which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_url",
              "api_endpoint",
              "api_groups"
            ]
          },
          "client_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyClientMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.\nFor example: api.example.com.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-example": "api.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-example": "api.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain. For",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafBypassRateLimitingRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafBypassRateLimitingRules": {
        "type": "object",
        "description": "This category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.",
        "title": "bypass_rate_limiting_policy",
        "x-displayname": "Bypass Rate Limiting.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.BypassRateLimitingRules",
        "properties": {
          "bypass_rate_limiting_rules": {
            "type": "array",
            "description": "This category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.",
            "title": "bypass_rate_limiting_policy",
            "maxItems": 20,
            "items": {
              "$ref": "#/components/schemas/common_wafBypassRateLimitingRule"
            },
            "x-displayname": "Bypass Rate Limiting.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "20"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.",
            "x-f5xc-description-medium": "Category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 20,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.",
        "x-f5xc-description-medium": "Category defines rules per URL or API group. If request matches any of these rules, skip Rate Limiting.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafBypassRateLimitingRules",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafChallengeRule": {
        "type": "object",
        "description": "Challenge rule.",
        "title": "Challenge Rule",
        "x-displayname": "Challenge Rule.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ChallengeRule",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policy_ruleChallengeRuleSpec"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafChallengeRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafChallengeRuleList": {
        "type": "object",
        "description": "List of challenge rules to be used in policy based challenge.",
        "title": "Challenge Rule List",
        "x-displayname": "Challenge Rule List.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ChallengeRuleList",
        "properties": {
          "rules": {
            "type": "array",
            "description": "Rules that specify the match conditions and challenge type to be launched.\nWhen a challenge type is selected to be always enabled,\nthese rules can be used to disable challenge or launch a different challenge for requests that match the specified conditions.",
            "title": "Rules",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/common_wafChallengeRule"
            },
            "x-displayname": "Rules",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Rules that specify the match conditions and challenge type to be launched.",
            "x-f5xc-description-medium": "Rules that specify the match conditions and challenge type to be launched. When a challenge type is selected to be always enabled, these rules can be used to disable challenge or launch a different challenge for requests that match the specified conditions.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of challenge rules to be used in policy based challenge.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafChallengeRuleList",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafCodeBaseIntegrationSelection": {
        "type": "object",
        "title": "Code Base Integration",
        "x-displayname": "Code Base Integration.",
        "x-ves-oneof-field-api_repos_choice": "[\"all_repos\",\"selected_repos\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.CodeBaseIntegrationSelection",
        "properties": {
          "all_repos": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "selected_repos"
            ]
          },
          "code_base_integration": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for code base integration.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "code_base_integration",
                "field_path": "code_base_integration",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "selected_repos": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiCodeRepos"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for selected repos.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_repos"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafCodeBaseIntegrationSelection",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafCustomFallThroughMode__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Define the fall through settings.",
        "title": "Custom Fall Through Mode",
        "x-displayname": "Custom Fall Through Mode.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.CustomFallThroughMode",
        "properties": {
          "open_api_validation_rules": {
            "type": "array",
            "description": "Rule or policy definition",
            "title": "Custom Fall Through Rule List",
            "maxItems": 15,
            "items": {
              "$ref": "#/components/schemas/common_wafFallThroughRule__ves_io_schema_views_bigip_virtual_server"
            },
            "x-displayname": "Custom Fall Through Rule List.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "15",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "15",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 15,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafCustomFallThroughMode",
          "required_fields": [
            "open_api_validation_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"open_api_validation_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "open_api_validation_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafCustomIpAllowedList": {
        "type": "object",
        "description": "IP Allowed list using existing ip_prefix_set objects.",
        "title": "Custom IP Allowed List",
        "x-displayname": "Custom IP Allowed List.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.CustomIpAllowedList",
        "properties": {
          "rate_limiter_allowed_prefixes": {
            "type": "array",
            "description": "References to ip_prefix_set objects.\nRequests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "title": "rate_limiter_allowed_prefixes",
            "minItems": 1,
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "List of IP Prefix Sets.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-description-medium": "References to ip_prefix_set objects. Requests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "IP Allowed list using existing ip_prefix_set objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafCustomIpAllowedList",
          "required_fields": [
            "rate_limiter_allowed_prefixes"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"rate_limiter_allowed_prefixes\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "rate_limiter_allowed_prefixes:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafEnableChallenge": {
        "type": "object",
        "description": "Configure auto mitigation i.e risk based challenges for malicious users.",
        "title": "enable challenge",
        "x-displayname": "Enable Malicious User Challenge.",
        "x-ves-oneof-field-captcha_challenge_parameters_choice": "[\"captcha_challenge_parameters\",\"default_captcha_challenge_parameters\"]",
        "x-ves-oneof-field-js_challenge_parameters_choice": "[\"default_js_challenge_parameters\",\"js_challenge_parameters\"]",
        "x-ves-oneof-field-malicious_user_mitigation_choice": "[\"default_mitigation_settings\",\"malicious_user_mitigation\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.EnableChallenge",
        "properties": {
          "captcha_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_captcha_challenge_parameters"
            ]
          },
          "default_captcha_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default captcha challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge_parameters"
            ]
          },
          "default_js_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default js challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_challenge_parameters"
            ]
          },
          "default_mitigation_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "malicious_user_mitigation"
            ]
          },
          "js_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_js_challenge_parameters"
            ]
          },
          "malicious_user_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_mitigation_settings"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "malicious_user_mitigation",
                "field_path": "malicious_user_mitigation",
                "gated_by": {
                  "choice": "malicious_user_mitigation_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Configure auto mitigation i.e risk based challenges for malicious users.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafEnableChallenge",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafFallThroughRule__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Fall Through Rule for a specific endpoint, base-path, or API group.",
        "title": "Fall Through Rule",
        "x-displayname": "Fall Through Rule.",
        "x-ves-oneof-field-action_choice": "[\"action_block\",\"action_report\",\"action_skip\"]",
        "x-ves-oneof-field-condition_type_choice": "[\"api_endpoint\",\"api_group\",\"base_path\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.FallThroughRule",
        "properties": {
          "action_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "action_report",
              "action_skip"
            ]
          },
          "action_report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "action_block",
              "action_skip"
            ]
          },
          "action_skip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "action_block",
              "action_report"
            ]
          },
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointDetails"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_group",
              "base_path"
            ]
          },
          "api_group": {
            "type": "string",
            "description": "Exclusive with [api_endpoint base_path]\nThe API group which this validation applies to.",
            "title": "api_group",
            "maxLength": 128,
            "x-displayname": "API Group",
            "x-ves-example": "Oas-all-operations.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "oas-all-operations",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint base_path] The API group which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "base_path"
            ]
          },
          "base_path": {
            "type": "string",
            "description": "Exclusive with [api_endpoint api_group]\nThe base path which this validation applies to.",
            "title": "base path",
            "maxLength": 128,
            "x-displayname": "Base Path",
            "x-ves-example": "/API/v1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "/api/v1",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint api_group] The base path which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "api_group"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Fall Through Rule for a specific endpoint, base-path, or API group.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafFallThroughRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafInlineRateLimiter__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "title": "InlineRateLimiter",
        "x-displayname": "InlineRateLimiter.",
        "x-ves-oneof-field-count_by_choice": "[\"ref_user_id\",\"use_http_lb_user_id\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.InlineRateLimiter",
        "properties": {
          "ref_user_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "use_http_lb_user_id"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "user_identification",
                "field_path": "ref_user_id",
                "gated_by": {
                  "choice": "count_by_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "threshold": {
            "type": "integer",
            "description": "The total number of allowed requests for 1 unit (e.g. SECOND/MINUTE/HOUR etc.) of the specified period.",
            "title": "threshold",
            "format": "int64",
            "x-displayname": "Threshold",
            "x-ves-example": "1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "8192"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "8192"
            },
            "x-f5xc-description-short": "The total number of allowed requests for 1 unit (e.g. SECOND/MINUTE/HOUR etc.) of the specified period.",
            "x-f5xc-description-medium": "The total number of allowed requests for 1 unit (e.g. SECOND/MINUTE/HOUR etc.) of the specified period.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 8192,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "unit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterRateLimitPeriodUnit"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_http_lb_user_id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "ref_user_id"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafInlineRateLimiter",
          "required_fields": [
            "threshold"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"threshold\": 0\n}",
          "example_yaml": "threshold: 0"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafJWKS": {
        "type": "object",
        "description": "The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server. See RFC 7517 for more details.",
        "title": "jwks",
        "x-displayname": "JSON Web Key Set (JWKS)",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.JWKS",
        "properties": {
          "cleartext": {
            "type": "string",
            "description": "The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server. See RFC 7517 for more details.",
            "title": "cleartext",
            "x-displayname": "JSON Web Key Set (JWKS)",
            "x-f5xc-description-short": "The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server.",
            "x-f5xc-description-medium": "The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server. See RFC 7517 for more details.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server.",
        "x-f5xc-description-medium": "The JSON Web Key Set (JWKS) is a set of keys used to verify JSON Web Token (JWT) issued by the Authorization Server. See RFC 7517 for more details.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafJWKS",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafJWTValidation": {
        "type": "object",
        "description": "JWT Validation stops JWT replay attacks and JWT tampering by cryptographically verifying incoming\nJWTs before they are passed to your API origin. JWT Validation will also stop requests with expired\ntokens or tokens that are not yet valid.",
        "title": "JWT Validation",
        "x-displayname": "JWT Validation.",
        "x-ves-oneof-field-jwks_configuration": "[\"authorization_server\",\"jwks_config\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.JWTValidation",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "authorization_server": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAuthorizationServer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for authorization server.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "jwks_config"
            ]
          },
          "jwks_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafJWKS"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "authorization_server"
            ]
          },
          "mandatory_claims": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafMandatoryClaims"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for mandatory claims.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "reserved_claims": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafReservedClaims"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for reserved claims.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "target": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafTarget"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "token_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafTokenLocation"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for token location.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "JWT Validation stops JWT replay attacks and JWT tampering by cryptographically verifying incoming JWTs before they are passed to your API origin.",
        "x-f5xc-description-medium": "JWT Validation stops JWT replay attacks and JWT tampering by cryptographically verifying incoming JWTs before they are passed to your API origin. JWT Validation will also stop requests with expired tokens or tokens that are not yet valid.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafJWTValidation",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafMandatoryClaims": {
        "type": "object",
        "description": "Configurable Validation of mandatory Claims.",
        "title": "MandatoryClaims",
        "x-displayname": "Mandatory Claims.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.MandatoryClaims",
        "properties": {
          "claim_names": {
            "type": "array",
            "description": "Human-readable name for the resource",
            "title": "Claim names",
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "Claim Names.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Configurable Validation of mandatory Claims.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafMandatoryClaims",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiFallThroughMode__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Determine what to do with unprotected endpoints (not in the OpenAPI specification file (a.k.a. Swagger) or doesn't have a specific rule in custom rules)",
        "title": "Fall Through Mode",
        "x-displayname": "Fall Through Mode.",
        "x-ves-oneof-field-fall_through_mode_choice": "[\"fall_through_mode_allow\",\"fall_through_mode_custom\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiFallThroughMode",
        "properties": {
          "fall_through_mode_allow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fall through mode allow.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "fall_through_mode_custom"
            ]
          },
          "fall_through_mode_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafCustomFallThroughMode__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fall through mode custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "fall_through_mode_allow"
            ]
          }
        },
        "x-required": true,
        "x-f5xc-description-short": "Determine what to do with unprotected endpoints (not in the OpenAPI specification file (a.k.a.",
        "x-f5xc-description-medium": "Determine what to do with unprotected endpoints (not in the OpenAPI specification file (a.k.a. Swagger) or doesn't have a specific rule in custom rules).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiFallThroughMode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationAllSpecEndpointsSettings__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Settings for API Inventory validation.",
        "title": "OpenAPI Validation API Inventory Settings",
        "x-displayname": "API Inventory.",
        "x-ves-oneof-field-oversized_body_choice": "[]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationAllSpecEndpointsSettings",
        "properties": {
          "fall_through_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiFallThroughMode__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fall through mode.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationCommonSettings__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "validation_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationMode__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation mode.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationAllSpecEndpointsSettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationCommonSettings__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "OpenAPI specification validation settings relevant for \"API Inventory\" enforcement and for \"Custom list\" enforcement.",
        "title": "OpenAPI specification validation common settings",
        "x-displayname": "Common Settings.",
        "x-ves-oneof-field-fail_configuration": "[]",
        "x-ves-oneof-field-oversized_body_choice": "[\"oversized_body_fail_validation\",\"oversized_body_skip_validation\"]",
        "x-ves-oneof-field-property_validation_settings_choice": "[\"property_validation_settings_custom\",\"property_validation_settings_default\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationCommonSettings",
        "properties": {
          "oversized_body_fail_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "oversized_body_skip_validation"
            ]
          },
          "oversized_body_skip_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "oversized_body_fail_validation"
            ]
          },
          "property_validation_settings_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafValidationPropertySetting__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for property validation settings custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "property_validation_settings_default"
            ]
          },
          "property_validation_settings_default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for property validation settings default.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "property_validation_settings_custom"
            ]
          }
        },
        "x-f5xc-description-short": "OpenAPI specification validation settings relevant for \"API Inventory\" enforcement and for \"Custom list\" enforcement.",
        "x-f5xc-description-medium": "OpenAPI specification validation settings relevant for \"API Inventory\" enforcement and for \"Custom list\" enforcement.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationCommonSettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationMode__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Validation mode of OpenAPI specification.\nWhen a validation mismatch occurs on a request to one of the endpoints listed on the OpenAPI specification file (a.k.a. Swagger)",
        "title": "Validation Mode",
        "x-displayname": "Validation Mode.",
        "x-ves-oneof-field-response_validation_mode_choice": "[\"response_validation_mode_active\",\"skip_response_validation\"]",
        "x-ves-oneof-field-validation_mode_choice": "[\"skip_validation\",\"validation_mode_active\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationMode",
        "properties": {
          "response_validation_mode_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationModeActiveResponse__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "skip_response_validation"
            ]
          },
          "skip_response_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "response_validation_mode_active"
            ]
          },
          "skip_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "validation_mode_active"
            ]
          },
          "validation_mode_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationModeActive__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Enable OpenAPI validation and explicitly select enforcement_report to allow and log invalid traffic, or enforcement_block to reject invalid...",
            "x-f5xc-description-medium": "Enable OpenAPI validation and explicitly select enforcement_report to allow and log invalid traffic, or enforcement_block to reject invalid requests with HTTP 403.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Enable OpenAPI validation and explicitly select enforcement_report to allow and log invalid traffic, or enforcement_block to reject invalid requests with HTTP 403.",
            "x-f5xc-conflicts-with": [
              "skip_validation"
            ]
          }
        },
        "x-required": true,
        "x-f5xc-description-short": "Validation mode of OpenAPI specification.",
        "x-f5xc-description-medium": "Validation mode of OpenAPI specification. When a validation mismatch occurs on a request to one of the endpoints listed on the OpenAPI specification file (a.k.a. Swagger).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationMode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationModeActive__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Validation mode properties of request.",
        "title": "Open API Validation Mode Active For Request",
        "x-displayname": "Open API Validation Mode Active.",
        "x-ves-oneof-field-validation_enforcement_type": "[\"enforcement_block\",\"enforcement_report\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationModeActive",
        "properties": {
          "enforcement_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties.",
            "x-f5xc-description-medium": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-conflicts-with": [
              "enforcement_report"
            ]
          },
          "enforcement_report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-description-medium": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-conflicts-with": [
              "enforcement_block"
            ]
          },
          "request_validation_properties": {
            "type": "array",
            "description": "List of properties of the request to validate according to the OpenAPI specification file (a.k.a. Swagger)",
            "title": "Request Validation Properties",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/schemaOpenApiValidationProperties"
            },
            "x-displayname": "Request Validation Properties.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of properties of the request to validate according to the OpenAPI specification file (a.k.a.",
            "x-f5xc-description-medium": "List of properties of the request to validate according to the OpenAPI specification file (a.k.a. Swagger).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationModeActive",
          "required_fields": [
            "request_validation_properties"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"request_validation_properties\": [\n    \"PROPERTY_QUERY_PARAMETERS\"\n  ]\n}",
          "example_yaml": "request_validation_properties:\n- PROPERTY_QUERY_PARAMETERS"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationModeActiveResponse__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Validation mode properties of response.",
        "title": "Open API Validation Mode Active For Response",
        "x-displayname": "Open API Validation Mode Active.",
        "x-ves-oneof-field-validation_enforcement_type": "[\"enforcement_block\",\"enforcement_report\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationModeActiveResponse",
        "properties": {
          "enforcement_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties.",
            "x-f5xc-description-medium": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Blocking validation: reject traffic that violates the selected OpenAPI validation properties. Invalid requests are returned as HTTP 403.",
            "x-f5xc-conflicts-with": [
              "enforcement_report"
            ]
          },
          "enforcement_report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-description-medium": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Report-only validation: record OpenAPI violations while allowing the request or response to continue.",
            "x-f5xc-conflicts-with": [
              "enforcement_block"
            ]
          },
          "response_validation_properties": {
            "type": "array",
            "description": "List of properties of the response to validate according to the OpenAPI specification file (a.k.a. Swagger)",
            "title": "Response Validation Properties",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/schemaOpenApiValidationProperties"
            },
            "x-displayname": "Response Validation Properties.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.in": "[2,4,5,7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.in": "[2,4,5,7]",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of properties of the response to validate according to the OpenAPI specification file (a.k.a.",
            "x-f5xc-description-medium": "List of properties of the response to validate according to the OpenAPI specification file (a.k.a. Swagger).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationModeActiveResponse",
          "required_fields": [
            "response_validation_properties"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"response_validation_properties\": [\n    \"PROPERTY_QUERY_PARAMETERS\"\n  ]\n}",
          "example_yaml": "response_validation_properties:\n- PROPERTY_QUERY_PARAMETERS"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafOpenApiValidationRule__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "OpenAPI Validation Rule for a specific endpoint, base-path, or API group.",
        "title": "OpenAPI Validation Rule",
        "x-displayname": "OpenAPI Validation Rule.",
        "x-ves-oneof-field-condition_type_choice": "[\"api_endpoint\",\"api_group\",\"base_path\"]",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.OpenApiValidationRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointDetails"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_group",
              "base_path"
            ]
          },
          "api_group": {
            "type": "string",
            "description": "Exclusive with [api_endpoint base_path]\nThe API group which this validation applies to.",
            "title": "api_group",
            "maxLength": 128,
            "x-displayname": "API Group",
            "x-ves-example": "Oas-all-operations.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "oas-all-operations",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint base_path] The API group which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "base_path"
            ]
          },
          "base_path": {
            "type": "string",
            "description": "Exclusive with [api_endpoint api_group]\nThe base path which this validation applies to.",
            "title": "base path",
            "maxLength": 128,
            "x-displayname": "Base Path",
            "x-ves-example": "/API/v1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "/api/v1",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [api_endpoint api_group] The base path which this validation applies to.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_endpoint",
              "api_group"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          },
          "validation_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationMode__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation mode.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "OpenAPI Validation Rule for a specific endpoint, base-path, or API group.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafOpenApiValidationRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafRateLimitConfigType": {
        "type": "object",
        "title": "RateLimitConfigType",
        "x-displayname": "RateLimitConfigType.",
        "x-ves-oneof-field-ip_allowed_list_choice": "[\"custom_ip_allowed_list\",\"ip_allowed_list\",\"no_ip_allowed_list\"]",
        "x-ves-oneof-field-policy_choice": "[\"no_policies\",\"policies\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.RateLimitConfigType",
        "properties": {
          "custom_ip_allowed_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafCustomIpAllowedList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_allowed_list",
              "no_ip_allowed_list"
            ]
          },
          "ip_allowed_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsPrefixStringListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_ip_allowed_list",
              "no_ip_allowed_list"
            ]
          },
          "no_ip_allowed_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "custom_ip_allowed_list",
              "ip_allowed_list"
            ]
          },
          "no_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "policies"
            ]
          },
          "policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiter_policyPolicyList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_policies"
            ]
          },
          "rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterRateLimitValue"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafRateLimitConfigType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafReservedClaims": {
        "type": "object",
        "description": "Configurable Validation of reserved Claims.",
        "title": "reserved claims",
        "x-displayname": "Reserved claims configuration.",
        "x-ves-oneof-field-audience_validation": "[\"audience\",\"audience_disable\"]",
        "x-ves-oneof-field-issuer_validation": "[\"issuer\",\"issuer_disable\"]",
        "x-ves-oneof-field-validate_period": "[\"validate_period_disable\",\"validate_period_enable\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ReservedClaims",
        "properties": {
          "audience": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAudiences"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "audience_disable"
            ]
          },
          "audience_disable": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for audience disable.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "audience"
            ]
          },
          "issuer": {
            "type": "string",
            "description": "Exclusive with [issuer_disable]",
            "title": "issuer",
            "x-displayname": "Exact Match.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "issuer_disable"
            ]
          },
          "issuer_disable": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for issuer disable.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "issuer"
            ]
          },
          "validate_period_disable": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validate period disable.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "validate_period_enable"
            ]
          },
          "validate_period_enable": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validate period enable.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "validate_period_disable"
            ]
          }
        },
        "x-f5xc-description-short": "Configurable Validation of reserved Claims.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafReservedClaims",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafServerUrlRule": {
        "type": "object",
        "title": "ServerUrlRule",
        "x-displayname": "Server URLs and API Groups.",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"specific_domain\"]",
        "x-ves-oneof-field-rate_limiter_choice": "[\"inline_rate_limiter\",\"ref_rate_limiter\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ServerUrlRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_domain"
            ]
          },
          "api_group": {
            "type": "string",
            "description": "API groups derived from API Definition swaggers.\nFor example oas-all-operations including all paths and methods from the swaggers, oas-base-URLs covering all requests under base-paths from the swaggers.\nCustom groups can be created if user tags paths or operations with \"x-F5 Distributed Cloud-API-group\" extensions inside swaggers.",
            "title": "api_group",
            "maxLength": 128,
            "x-displayname": "API Group",
            "x-ves-example": "Oas-all-operations.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "oas-all-operations",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "API groups derived from API Definition swaggers.",
            "x-f5xc-description-medium": "API groups derived from API Definition swaggers. For example oas-all-operations including all paths and methods from the swaggers, oas-base-URLs covering all requests under base-paths from the swaggers. Custom groups can be created if user tags paths or operations with \"x-F5 Distributed...",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "base_path": {
            "type": "string",
            "description": "Prefix of the request path.",
            "title": "base path",
            "maxLength": 128,
            "x-displayname": "Base Path",
            "x-ves-example": "/",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "/",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "client_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyClientMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "inline_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafInlineRateLimiter__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Inline rate-limiter settings for this domain, base-path, or endpoint rule.",
            "x-f5xc-description-medium": "Inline rate-limiter settings for this domain, base-path, or endpoint rule. Select this field as the required rate_limiter_choice when no stored rate-limiter object is used.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Inline rate-limiter settings for this domain, base-path, or endpoint rule. Select this field as the required rate_limiter_choice when no stored rate-limiter object is used.",
            "x-f5xc-conflicts-with": [
              "ref_rate_limiter"
            ]
          },
          "ref_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Reference to a stored rate-limiter object for this scoped rule. Select exactly one of ref_rate_limiter and inline_rate_limiter.",
            "x-f5xc-description-medium": "Reference to a stored rate-limiter object for this scoped rule. Select exactly one of ref_rate_limiter and inline_rate_limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Reference to a stored rate-limiter object for this scoped rule. Select exactly one of ref_rate_limiter and inline_rate_limiter.",
            "x-f5xc-conflicts-with": [
              "inline_rate_limiter"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "rate_limiter",
                "field_path": "ref_rate_limiter",
                "gated_by": {
                  "choice": "rate_limiter_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "request_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestMatcher__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "specific_domain": {
            "type": "string",
            "description": "Exclusive with [any_domain]\nThe rule will apply for a specific domain.",
            "title": "domain",
            "maxLength": 128,
            "x-displayname": "Specific Domain.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain] The rule will apply for a specific domain.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafServerUrlRule",
          "required_fields": [
            "base_path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"base_path\": \"/\"\n}",
          "example_yaml": "base_path: /"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafServicePolicyList": {
        "type": "object",
        "description": "List of service policies.",
        "title": "service policy list",
        "x-displayname": "Service Policy List.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ServicePolicyList",
        "properties": {
          "policies": {
            "type": "array",
            "description": "Service Policies is a sequential engine where policies (and rules within the policy) are evaluated one after the other. It's important to define the\ncorrect order (policies evaluated from top to bottom in the list) for service policies, to GET the intended result.\nFor each request, its characteristics are evaluated based on the match criteria in each service policy starting at the top. If there is a match in the\ncurrent policy, then the policy takes effect, and no more policies are evaluated. Otherwise, the next policy is evaluated.\nIf all policies are evaluated and none match, then the request will be denied by default.",
            "title": "policies",
            "minItems": 1,
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Policies",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Service Policies is a sequential engine where policies (and rules within the policy) are evaluated one after the other.",
            "x-f5xc-description-medium": "Service Policies is a sequential engine where policies (and rules within the policy) are evaluated one after the other. It's important to define the correct order (policies evaluated from top to bottom in the list) for service policies, to GET the intended result. For each request, its...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafServicePolicyList",
          "required_fields": [
            "policies"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"policies\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "policies:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafSimpleClientSrcRule__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "Simple client source rule specifies the sources to be blocked or trusted (skip WAF)",
        "title": "SimpleClientSrcRule",
        "x-displayname": "Client Rule.",
        "x-ves-oneof-field-action_choice": "[\"bot_skip_processing\",\"skip_processing\",\"waf_skip_processing\"]",
        "x-ves-oneof-field-client_source_choice": "[\"as_number\",\"http_header\",\"ip_prefix\",\"ipv6_prefix\",\"user_identifier\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.SimpleClientSrcRule",
        "properties": {
          "actions": {
            "type": "array",
            "description": "Actions that should be taken when client identifier matches the rule.",
            "title": "actions",
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/common_wafClientSrcRuleAction"
            },
            "x-displayname": "Actions",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.enum.defined_only": "true",
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "10",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.enum.defined_only": "true",
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "10",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Actions that should be taken when client identifier matches the rule.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 10,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "as_number": {
            "type": "integer",
            "description": "Exclusive with [http_header ip_prefix ipv6_prefix user_identifier]\nRFC 6793 defined 4-byte AS number.",
            "title": "as number",
            "format": "int64",
            "x-displayname": "AS Number",
            "x-ves-example": "4683",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-example": "4683",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "401308"
            },
            "x-f5xc-description-short": "Exclusive with [http_header ip_prefix ipv6_prefix user_identifier] RFC 6793 defined 4-byte AS number.",
            "x-f5xc-description-medium": "Exclusive with [http_header ip_prefix ipv6_prefix user_identifier] RFC 6793 defined 4-byte AS number.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 401308,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_header",
              "ip_prefix",
              "ipv6_prefix",
              "user_identifier"
            ]
          },
          "bot_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "skip_processing",
              "waf_skip_processing"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "title": "expiration timestamp",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-validation-rules": {
              "ves.io.schema.rules.timestamp.within.seconds": "31536000"
            },
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafHttpHeaderMatcherList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "as_number",
              "ip_prefix",
              "ipv6_prefix",
              "user_identifier"
            ]
          },
          "ip_prefix": {
            "type": "string",
            "description": "Exclusive with [as_number http_header ipv6_prefix user_identifier]\nIPv4 prefix string.",
            "title": "ip prefix",
            "x-displayname": "IPv4 Prefix.",
            "x-ves-example": "192.0.2.0/24.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4_prefix": "true"
            },
            "x-f5xc-example": "192.0.2.0/24",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4_prefix": "true"
            },
            "x-f5xc-description-short": "Exclusive with [as_number http_header ipv6_prefix user_identifier] IPv4 prefix string.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "as_number",
              "http_header",
              "ipv6_prefix",
              "user_identifier"
            ]
          },
          "ipv6_prefix": {
            "type": "string",
            "description": "Exclusive with [as_number http_header ip_prefix user_identifier]\nIPv6 prefix string.",
            "title": "ipv6 prefix",
            "x-displayname": "IPv6 Prefix.",
            "x-ves-example": "2001::1/64.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv6_prefix": "true"
            },
            "x-f5xc-example": "2001::1/64",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv6_prefix": "true"
            },
            "x-f5xc-description-short": "Exclusive with [as_number http_header ip_prefix user_identifier] IPv6 prefix string.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "as_number",
              "http_header",
              "ip_prefix",
              "user_identifier"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_skip_processing",
              "waf_skip_processing"
            ]
          },
          "user_identifier": {
            "type": "string",
            "description": "Exclusive with [as_number http_header ip_prefix ipv6_prefix]\nIdentify user based on user identifier. User identifier value needs to be copied from security event.",
            "title": "user identifier",
            "maxLength": 256,
            "x-displayname": "User Identifier.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [as_number http_header ip_prefix ipv6_prefix] Identify user based on user identifier.",
            "x-f5xc-description-medium": "Exclusive with [as_number http_header ip_prefix ipv6_prefix] Identify user based on user identifier. User identifier value needs to be copied from security event.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "as_number",
              "http_header",
              "ip_prefix",
              "ipv6_prefix"
            ]
          },
          "waf_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_skip_processing",
              "skip_processing"
            ]
          }
        },
        "x-f5xc-description-short": "Simple client source rule specifies the sources to be blocked or trusted (skip WAF).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafSimpleClientSrcRule",
          "required_fields": [
            "actions"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"actions\": [\n    \"SKIP_PROCESSING_WAF\"\n  ]\n}",
          "example_yaml": "actions:\n- SKIP_PROCESSING_WAF"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafSimpleLogin": {
        "type": "object",
        "title": "Simple Login",
        "x-displayname": "Simple Login.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.SimpleLogin",
        "properties": {
          "password": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-example": "example",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "user": {
            "type": "string",
            "description": "Enter the username to assign credentials for the selected domain to crawl.",
            "title": "The custom domain user authentication",
            "maxLength": 64,
            "x-displayname": "User",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-f5xc-description-short": "Enter the username to assign credentials for the selected domain to crawl.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 64,
              "minLength": 1,
              "pattern": "^[a-zA-Z0-9_.-]+$",
              "characterSet": {
                "allowed": "[a-zA-Z0-9_.-]",
                "description": "Alphanumeric with underscores, dots, hyphens"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafSimpleLogin",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafTarget": {
        "type": "object",
        "description": "Define endpoints for which JWT token validation will be performed.",
        "title": "target",
        "x-displayname": "Target",
        "x-ves-oneof-field-target": "[\"all_endpoint\",\"api_groups\",\"base_paths\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.Target",
        "properties": {
          "all_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_groups",
              "base_paths"
            ]
          },
          "api_groups": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIGroups"
              }
            ],
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_endpoint",
              "base_paths"
            ]
          },
          "base_paths": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafBasePathsType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_endpoint",
              "api_groups"
            ]
          }
        },
        "x-f5xc-description-short": "Define endpoints for which JWT token validation will be performed.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafTarget",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafTokenLocation": {
        "type": "object",
        "description": "Location of JWT in HTTP request.",
        "title": "token location",
        "x-displayname": "Token Location.",
        "x-ves-oneof-field-token_location": "[\"bearer_token\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.TokenLocation",
        "properties": {
          "bearer_token": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bearer token.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafTokenLocation",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafValidateApiBySpecRule": {
        "type": "object",
        "description": "Define API groups, base paths, or API endpoints and their OpenAPI validation modes.\nAny other API-endpoint not listed will act according to \"Fall Through Mode\".",
        "title": "ValidateApiBySpecRule",
        "x-displayname": "Custom List.",
        "x-ves-oneof-field-oversized_body_choice": "[]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ValidateApiBySpecRule",
        "properties": {
          "fall_through_mode": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiFallThroughMode__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fall through mode.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "open_api_validation_rules": {
            "type": "array",
            "description": "Rule or policy definition",
            "title": "Validation List",
            "maxItems": 15,
            "items": {
              "$ref": "#/components/schemas/common_wafOpenApiValidationRule__ves_io_schema_views_bigip_virtual_server"
            },
            "x-displayname": "Validation List.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "15",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "15",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 15,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafOpenApiValidationCommonSettings__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Define API groups, base paths, or API endpoints and their OpenAPI validation modes.",
        "x-f5xc-description-medium": "Define API groups, base paths, or API endpoints and their OpenAPI validation modes. Any other API-endpoint not listed will act according to \"Fall Through Mode\".",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafValidateApiBySpecRule",
          "required_fields": [
            "open_api_validation_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"open_api_validation_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "open_api_validation_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafValidationPropertySetting__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Custom property validation settings.",
        "title": "Validation Property settings",
        "x-displayname": "Validation Property Settings.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ValidationPropertySetting",
        "properties": {
          "queryParameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafValidationSettingForQueryParameters__ves_io_schema_views_bigip_virtual_server"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for queryParameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafValidationPropertySetting",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafValidationSettingForQueryParameters__ves_io_schema_views_bigip_virtual_server": {
        "type": "object",
        "description": "Custom settings for query parameters validation.",
        "title": "Validation Settings For Query Parameters",
        "x-displayname": "Validation Settings For Query Parameters.",
        "x-ves-oneof-field-additional_parameters_choice": "[\"allow_additional_parameters\",\"disallow_additional_parameters\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.ValidationSettingForQueryParameters",
        "properties": {
          "allow_additional_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow additional parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disallow_additional_parameters"
            ]
          },
          "disallow_additional_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disallow additional parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_additional_parameters"
            ]
          }
        },
        "x-f5xc-description-short": "Custom settings for query parameters validation.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafValidationSettingForQueryParameters",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafWafExclusion": {
        "type": "object",
        "title": "WAF Exclusion",
        "x-displayname": "WAF Exclusion.",
        "x-ves-oneof-field-waf_exclusion_choice": "[\"waf_exclusion_inline_rules\",\"waf_exclusion_policy\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.WafExclusion",
        "properties": {
          "waf_exclusion_inline_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafWafExclusionInlineRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "waf_exclusion_policy"
            ]
          },
          "waf_exclusion_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "waf_exclusion_inline_rules"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "waf_exclusion_policy",
                "field_path": "waf_exclusion_policy",
                "gated_by": {
                  "choice": "waf_exclusion_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafWafExclusion",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "common_wafWafExclusionInlineRules": {
        "type": "object",
        "description": "A list of WAF exclusion rules that will be applied inline.",
        "title": "WAF Exclusion Inline Rules",
        "x-displayname": "WAF Exclusion Inline Rules.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.WafExclusionInlineRules",
        "properties": {
          "rules": {
            "type": "array",
            "description": "An ordered list of WAF Exclusions specific to this Load Balancer.",
            "title": "List of WAF Exclusion Rules",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/policySimpleWafExclusionRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "WAF Exclusion Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Ordered list of WAF Exclusions specific to this Load Balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of WAF exclusion rules that will be applied inline.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for common_wafWafExclusionInlineRules",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "dos_mitigationDestination": {
        "type": "object",
        "description": "A reference to the object on which the DoS Attack is going to be mitigated.",
        "title": "Destination",
        "x-displayname": "Destination Object.",
        "x-ves-proto-message": "ves.io.schema.dos_mitigation.Destination",
        "properties": {
          "virtual_host": {
            "type": "array",
            "description": "Virtual Host on which mitigation is to occur.",
            "title": "virtual_host",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Virtual Host.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Virtual Host on which mitigation is to occur.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Reference to the object on which the DoS Attack is going to be mitigated.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for dos_mitigationDestination",
          "required_fields": [
            "virtual_host"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"virtual_host\": [\n    {}\n  ]\n}",
          "example_yaml": "virtual_host:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "dos_mitigationDoSMitigationRuleInfo": {
        "type": "object",
        "description": "DoS Mitigation Object to auto-configure rules to block attackers.",
        "title": "DoS Mitigation Rule Info",
        "x-displayname": "DoS Mitigation Object.",
        "x-ves-proto-message": "ves.io.schema.dos_mitigation.DoSMitigationRuleInfo",
        "properties": {
          "creation_timestamp": {
            "type": "string",
            "description": "CreationTimestamp is a timestamp representing the server time when this object was\ncreated. It is not guaranteed to be set in happens-before order across separate operations.\nClients may not set this value. It is represented in RFC3339 form and is in UTC.",
            "title": "creation_timestamp",
            "format": "date-time",
            "x-displayname": "Creation Timestamp.",
            "x-f5xc-description-short": "CreationTimestamp is a timestamp representing the server time when this object was created.",
            "x-f5xc-description-medium": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemados_mitigationGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "name": {
            "type": "string",
            "description": "This is the name of configuration object. It has to be unique within the namespace.\nIt can only be specified during create API and cannot be changed during replace API.\nThe value of name has to follow DNS-1035 format.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Example-corp-web.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "example-corp-web",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Name of configuration object. It has to be unique within the namespace.",
            "x-f5xc-description-medium": "Name of configuration object. It has to be unique within the namespace. It can only be specified during create API and cannot be changed during replace API.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "uid": {
            "type": "string",
            "description": "Uid is the unique in time and space value for this object. It is generated by\nthe server on successful creation of an object and is not allowed to change on Replace\nAPI. The value of is taken from uid field of ObjectMetaType, if provided.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-0df41b679859.",
            "x-f5xc-example": "00000000-0000-4000-8000-0df41b679859",
            "x-f5xc-description-short": "Uid is the unique in time and space value for this object.",
            "x-f5xc-description-medium": "Uid is the unique in time and space value for this object. It is generated by the server on successful creation of an object and is not allowed to change on Replace API. The value of is taken from uid field of ObjectMetaType, if provided.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "DoS Mitigation Object to auto-configure rules to block attackers.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for dos_mitigationDoSMitigationRuleInfo",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"example-corp-web\"\n}",
          "example_yaml": "name: example-corp-web"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "http_loadbalancerAPIGroupsApiep": {
        "type": "object",
        "description": "Apiep for the Evaluate API Group Builder response.",
        "title": "API Endpoint for API Group Evaluation",
        "x-displayname": "API Groups Endpoint.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.APIGroupsApiep",
        "properties": {
          "category": {
            "type": "array",
            "description": "The category of the API Endpoint relative to API Inventory.",
            "title": "Category",
            "items": {
              "$ref": "#/components/schemas/app_typeAPIEPCategory"
            },
            "x-displayname": "Category",
            "x-ves-example": "[APIEP_CATEGORY_DISCOVERED, APIEP_CATEGORY_INVENTORY]",
            "x-f5xc-example": "[APIEP_CATEGORY_DISCOVERED, APIEP_CATEGORY_INVENTORY]",
            "x-f5xc-description-short": "The category of the API Endpoint relative to API Inventory.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "type": "string",
            "description": "API Endpoint path.",
            "title": "Path",
            "x-displayname": "Path",
            "x-ves-example": "/API/v1/users/{ID}",
            "x-f5xc-example": "/api/v1/users/{id}",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "risk_score": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeRiskScore"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data": {
            "type": "array",
            "description": "Sensitive Data of the API endpoint.",
            "title": "Sensitive Data",
            "items": {
              "$ref": "#/components/schemas/app_typeSensitiveDataType"
            },
            "x-displayname": "Sensitive Data.",
            "x-ves-example": "[SENSITIVE_DATA_TYPE_CCN, SENSITIVE_DATA_TYPE_SSN]",
            "x-f5xc-example": "[SENSITIVE_DATA_TYPE_CCN, SENSITIVE_DATA_TYPE_SSN]",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_types": {
            "type": "array",
            "description": "Sensitive Data of the API endpoint.",
            "title": "Sensitive Data",
            "items": {
              "type": "string"
            },
            "x-displayname": "Sensitive Data.",
            "x-ves-example": "[Social-Security-Number, Credit-Card-Number]",
            "x-f5xc-example": "[Social-Security-Number, Credit-Card-Number]",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Apiep for the Evaluate API Group Builder response.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerAPIGroupsApiep",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerAdvancedOptionsType": {
        "type": "object",
        "description": "This defines various OPTIONS to define a route.",
        "title": "Advanced options",
        "x-displayname": "Advanced OPTIONS.",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-path_normalize_choice": "[\"disable_path_normalize\",\"enable_path_normalize\"]",
        "x-ves-oneof-field-strict_sni_host_header_check_choice": "[]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.AdvancedOptionsType",
        "properties": {
          "buffer_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBufferConfigType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "compression_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCompressionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for compression params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "custom_errors": {
            "type": "object",
            "description": "Map of integer error codes as keys and string values that can be used to provide custom\nHTTP pages for each error code.\nKey of the map can be either response code class or HTTP Error code. Response code classes\nfor key is configured as follows\n3 -- for 3xx response code class\n4 -- for 4xx response code class\n5 -- for 5xx response code class\nValue of the map is string which represents custom HTTP responses.\nSpecific response code takes preference when both response code and response code class\nmatches for a request.",
            "title": "Custom Errors",
            "x-displayname": "Custom Error Responses.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.ranges": "3,4,5,300-599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.ranges": "3,4,5,300-599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code.",
            "x-f5xc-description-medium": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code. Key of the map can be either response code class or HTTP Error code. Response code classes for key is configured as follows 3 -- for 3xx response code class 4 -- for 4xx...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_default_error_pages": {
            "type": "boolean",
            "description": "Disable the use of default F5XC error pages.",
            "title": "Disable the use of default F5XC error pages",
            "format": "boolean",
            "x-displayname": "Disable Default Error Pages.",
            "x-f5xc-description-short": "Disable the use of default F5XC error pages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_path_normalize"
            ]
          },
          "enable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_path_normalize"
            ]
          },
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.\nThe stream is terminated with a HTTP 504 (Gateway Timeout) error code if no upstream response header has been\nreceived, otherwise the stream is reset.",
            "title": "Idle timeout",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "3600000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "3600000"
            },
            "x-f5xc-description-short": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds. The stream is terminated with a HTTP 504 (Gateway Timeout) error code if no upstream response header has been received, otherwise the stream is reset.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 3600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_request_header_size": {
            "type": "integer",
            "description": "The maximum request header size for downstream connections, in KiB.\nA HTTP 431 (Request Header Fields Too Large) error code is sent for requests that exceed this size.\n\nIf multiple load balancers share the same advertise_policy, the highest value configured across all\nsuch load balancers is used for all the load balancers in question.",
            "title": "Maximum request header size",
            "format": "int64",
            "x-displayname": "Maximum Request Header Size.",
            "x-ves-example": "60",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-example": "60",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-description-short": "The maximum request header size for downstream connections, in KiB.",
            "x-f5xc-description-medium": "The maximum request header size for downstream connections, in KiB. A HTTP 431 (Request Header Fields Too Large) error code is sent for requests that exceed this size. If multiple load balancers share the same advertise_policy, the highest value configured across all such load balancers is used...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 96,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\nSets the maximum number of requests a downstream client can send\nover a single connection to Envoy.\nEnter a value >=1 to define the request limit per connection.",
            "title": "Maximum Requests Per Connection",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "request_cookies_to_add": {
            "type": "array",
            "description": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "title": "Cookies to add in request",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaCookieValueOption"
            },
            "x-displayname": "Add Cookies in Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_cookies_to_remove": {
            "type": "array",
            "description": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "title": "Cookies to be removed from request",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "title": "Headers to add in request",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Request Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP request being routed towards upstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "title": "Header to be removed from request",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Request Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_add": {
            "type": "array",
            "description": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "title": "Cookies to add in set-cookie header in response",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaSetCookieValueOption"
            },
            "x-displayname": "Add Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_remove": {
            "type": "array",
            "description": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "title": "Cookies to be removed from response",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of name of Cookies to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "title": "Headers to add in response",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Response Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP response being sent towards downstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "title": "Header to be removed from response",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Response Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines various OPTIONS to define a route.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerAdvancedOptionsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerApiInventorySchemaQueryType": {
        "type": "string",
        "description": "API Inventory Schema Query Type\n\n- API_INVENTORY_SCHEMA_FULL_RESPONSE: Full Response\n\n- API_INVENTORY_SCHEMA_CURRENT: Current Schema\n\n- API_INVENTORY_SCHEMA_UPDATED: Updated Schema.",
        "title": "API Inventory Schema Query Type",
        "enum": [
          "API_INVENTORY_SCHEMA_FULL_RESPONSE",
          "API_INVENTORY_SCHEMA_CURRENT",
          "API_INVENTORY_SCHEMA_UPDATED"
        ],
        "default": "API_INVENTORY_SCHEMA_FULL_RESPONSE",
        "x-displayname": "API Inventory Schema Query Type.",
        "x-ves-proto-enum": "ves.io.schema.views.http_loadbalancer.ApiInventorySchemaQueryType",
        "x-f5xc-description-short": "API Inventory Schema Query Type - API_INVENTORY_SCHEMA_FULL_RESPONSE: Full Response - API_INVENTORY_SCHEMA_CURRENT: Current Schema ...",
        "x-f5xc-description-medium": "API Inventory Schema Query Type - API_INVENTORY_SCHEMA_FULL_RESPONSE: Full Response - API_INVENTORY_SCHEMA_CURRENT: Current Schema - API_INVENTORY_SCHEMA_UPDATED: Updated Schema.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerApiInventorySchemaQueryType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"API_INVENTORY_SCHEMA_FULL_RESPONSE\"",
          "example_yaml": "API_INVENTORY_SCHEMA_FULL_RESPONSE\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerApiKey": {
        "type": "object",
        "title": "Api Key",
        "x-displayname": "API Key",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ApiKey",
        "properties": {
          "key": {
            "type": "string",
            "description": "Cryptographic key material",
            "title": "Api Key",
            "maxLength": 128,
            "x-displayname": "Key",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-example": "[REDACTED_PUBLIC_KEY]",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 7,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 15,
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerApiKey",
          "required_fields": [
            "key"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"key\": \"[REDACTED_PUBLIC_KEY]\"\n}",
          "example_yaml": "key: '[REDACTED_PUBLIC_KEY]'"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerApiTesting": {
        "type": "object",
        "title": "API Testing",
        "x-displayname": "API Testing.",
        "x-ves-oneof-field-frequency_choice": "[\"every_day\",\"every_month\",\"every_week\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ApiTesting",
        "properties": {
          "custom_header_value": {
            "type": "string",
            "description": "Add x-F5-API-testing-identifier header value to prevent security flags on API testing traffic.",
            "title": "Custom Header Value",
            "maxLength": 128,
            "x-displayname": "Custom Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Add x-F5-API-testing-identifier header value to prevent security flags on API testing traffic.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domains": {
            "type": "array",
            "description": "Add and configure testing domains and credentials.",
            "title": "Domain Configuration",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/viewshttp_loadbalancerDomainConfiguration"
            },
            "x-displayname": "Testing Environments.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-description-short": "Add and configure testing domains and credentials.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "every_day": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "every_month",
              "every_week"
            ]
          },
          "every_month": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for every month.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "every_day",
              "every_week"
            ]
          },
          "every_week": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "every_day",
              "every_month"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerApiTesting",
          "required_fields": [
            "domains"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domains\": [\n    {\n      \"credentials\": [\n        {\n          \"credential_name\": \"example\"\n        }\n      ],\n      \"domain\": \"example.com\"\n    }\n  ]\n}",
          "example_yaml": "domains:\n- credentials:\n  - credential_name: example\n  domain: example.com"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerAssignAPIDefinitionReq": {
        "type": "object",
        "description": "Request form for Assign API Definition.",
        "title": "Assign API Definition Request",
        "x-displayname": "Assign API Definition Request.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.AssignAPIDefinitionReq",
        "properties": {
          "api_definition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "api_definition",
                "field_path": "api_definition",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "create_if_not_exists": {
            "type": "boolean",
            "description": "Create an empty API Definition object, if not exists.",
            "title": "Create if not exists",
            "format": "boolean",
            "x-displayname": "Create if not exists.",
            "x-f5xc-description-short": "Create an empty API Definition object, if not exists.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the HTTP Load Balancer.",
            "title": "Name",
            "x-displayname": "Name",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the HTTP Load Balancer.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerAssignAPIDefinitionReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerAssignAPIDefinitionResp": {
        "type": "object",
        "description": "Response form for Assign API Definition.",
        "title": "Assign API Definition Response",
        "x-displayname": "Assign API Definition Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.AssignAPIDefinitionResp",
        "x-f5xc-description-short": "Response form for Assign API Definition.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerAssignAPIDefinitionResp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerBasicAuthentication": {
        "type": "object",
        "title": "Basic Authentication",
        "x-displayname": "Basic Authentication.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.BasicAuthentication",
        "properties": {
          "password": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-example": "example",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "user": {
            "type": "string",
            "description": "Configuration parameter for user",
            "title": "The custom domain user authentication",
            "maxLength": 64,
            "x-displayname": "User",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 64,
              "minLength": 1,
              "pattern": "^[a-zA-Z0-9_.-]+$",
              "characterSet": {
                "allowed": "[a-zA-Z0-9_.-]",
                "description": "Alphanumeric with underscores, dots, hyphens"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerBasicAuthentication",
          "required_fields": [
            "user"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"user\": \"value\"\n}",
          "example_yaml": "user: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerBearer": {
        "type": "object",
        "title": "Bearer Authentication",
        "x-displayname": "Bearer",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.Bearer",
        "properties": {
          "token": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-example": "example",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerBearer",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerCachingPolicy": {
        "type": "object",
        "description": "Caching Policies for the CDN.",
        "title": "Caching policies",
        "x-displayname": "Caching Policies.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.CachingPolicy",
        "properties": {
          "custom_cache_rule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_cache_ruleCustomCacheRule"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_cache_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_cache_ruleDefaultCacheAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-required": true,
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerCachingPolicy",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of http_loadbalancer",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewshttp_loadbalancerCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "HTTP/HTTPS load balancer for distributing traffic across origin pools",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "spec.domains"
          ],
          "mutually_exclusive_groups": [
            {
              "name": "lb_type",
              "fields": [
                "spec.http",
                "spec.https",
                "spec.https_auto_cert"
              ],
              "reason": "Choose exactly one load balancer type"
            },
            {
              "name": "advertising",
              "fields": [
                "spec.advertise_on_public_default_vip",
                "spec.advertise_on_public",
                "spec.advertise_custom",
                "spec.do_not_advertise"
              ],
              "reason": "Choose exactly one advertising method"
            },
            {
              "name": "waf",
              "fields": [
                "spec.app_firewall",
                "spec.disable_waf"
              ],
              "reason": "WAF enabled or disabled"
            },
            {
              "name": "bot_defense",
              "fields": [
                "spec.bot_defense",
                "spec.bot_defense_advanced",
                "spec.disable_bot_defense"
              ],
              "reason": "Bot defense enabled or disabled"
            },
            {
              "name": "rate_limit",
              "fields": [
                "spec.api_rate_limit",
                "spec.disable_rate_limit",
                "spec.rate_limit"
              ],
              "reason": "Rate limiting enabled or disabled"
            },
            {
              "name": "api_discovery",
              "fields": [
                "spec.disable_api_discovery",
                "spec.enable_api_discovery"
              ],
              "reason": "API discovery enabled or disabled"
            },
            {
              "name": "api_testing",
              "fields": [
                "spec.api_testing",
                "spec.disable_api_testing"
              ],
              "reason": "API testing enabled or disabled"
            },
            {
              "name": "api_definition",
              "fields": [
                "spec.api_specification",
                "spec.disable_api_definition"
              ],
              "reason": "API definition enabled or disabled"
            },
            {
              "name": "malware_protection",
              "fields": [
                "spec.disable_malware_protection",
                "spec.malware_protection_settings"
              ],
              "reason": "Malware protection enabled or disabled"
            },
            {
              "name": "client_side_defense",
              "fields": [
                "spec.client_side_defense",
                "spec.disable_client_side_defense"
              ],
              "reason": "Client-side defense enabled or disabled"
            },
            {
              "name": "ip_reputation",
              "fields": [
                "spec.disable_ip_reputation",
                "spec.enable_ip_reputation"
              ],
              "reason": "IP reputation enabled or disabled"
            },
            {
              "name": "threat_mesh",
              "fields": [
                "spec.disable_threat_mesh",
                "spec.enable_threat_mesh"
              ],
              "reason": "Threat mesh enabled or disabled"
            },
            {
              "name": "malicious_user_detection",
              "fields": [
                "spec.disable_malicious_user_detection",
                "spec.enable_malicious_user_detection"
              ],
              "reason": "Malicious user detection enabled or disabled"
            },
            {
              "name": "tls_config",
              "fields": [
                "spec.https_auto_cert.tls_config.default_security",
                "spec.https_auto_cert.tls_config.medium_security",
                "spec.https_auto_cert.tls_config.low_security",
                "spec.https_auto_cert.tls_config.custom_security"
              ],
              "reason": "Choose exactly one TLS security level"
            },
            {
              "name": "mtls",
              "fields": [
                "spec.https_auto_cert.no_mtls",
                "spec.https_auto_cert.use_mtls"
              ],
              "reason": "Mutual TLS enabled or disabled"
            },
            {
              "name": "server_name_header",
              "fields": [
                "spec.https_auto_cert.append_server_name",
                "spec.https_auto_cert.default_header",
                "spec.https_auto_cert.pass_through",
                "spec.https_auto_cert.server_name"
              ],
              "reason": "Choose exactly one server name header handling"
            },
            {
              "name": "path_normalize",
              "fields": [
                "spec.https_auto_cert.enable_path_normalize",
                "spec.https_auto_cert.disable_path_normalize"
              ],
              "reason": "Path normalization enabled or disabled"
            },
            {
              "name": "loadbalancer_choice",
              "fields": [
                "spec.https_auto_cert.non_default_loadbalancer",
                "spec.https_auto_cert.default_loadbalancer"
              ],
              "reason": "Choose default or non-default load balancer"
            },
            {
              "name": "http_protocol",
              "fields": [
                "spec.https_auto_cert.http_protocol_options.http_protocol_enable_v1_only",
                "spec.https_auto_cert.http_protocol_options.http_protocol_enable_v1_v2",
                "spec.https_auto_cert.http_protocol_options.http_protocol_enable_v2_only"
              ],
              "reason": "Choose exactly one HTTP protocol version configuration"
            },
            {
              "name": "coalescing",
              "fields": [
                "spec.https_auto_cert.coalescing_options.default_coalescing",
                "spec.https_auto_cert.coalescing_options.strict_coalescing"
              ],
              "reason": "Choose exactly one connection coalescing option"
            },
            {
              "name": "ddos_mitigation",
              "fields": [
                "spec.l7_ddos_protection.mitigation_block",
                "spec.l7_ddos_protection.mitigation_captcha_challenge",
                "spec.l7_ddos_protection.mitigation_js_challenge"
              ],
              "reason": "Choose exactly one DDoS mitigation action"
            },
            {
              "name": "ddos_rps_threshold",
              "fields": [
                "spec.l7_ddos_protection.default_rps_threshold",
                "spec.l7_ddos_protection.rps_threshold"
              ],
              "reason": "Choose default or custom RPS threshold"
            },
            {
              "name": "ddos_clientside_action",
              "fields": [
                "spec.l7_ddos_protection.clientside_action_captcha_challenge",
                "spec.l7_ddos_protection.clientside_action_js_challenge",
                "spec.l7_ddos_protection.clientside_action_none"
              ],
              "reason": "Choose exactly one client-side DDoS action"
            },
            {
              "name": "ddos_policy",
              "fields": [
                "spec.l7_ddos_protection.ddos_policy_custom",
                "spec.l7_ddos_protection.ddos_policy_none"
              ],
              "reason": "DDoS policy reference or none"
            },
            {
              "name": "challenge",
              "fields": [
                "spec.no_challenge",
                "spec.js_challenge",
                "spec.captcha_challenge",
                "spec.enable_challenge",
                "spec.policy_based_challenge"
              ],
              "reason": "Choose exactly one challenge type"
            },
            {
              "name": "user_identification",
              "fields": [
                "spec.user_id_client_ip",
                "spec.user_identification"
              ],
              "reason": "Choose user identification method"
            },
            {
              "name": "client_ip_headers",
              "fields": [
                "spec.disable_trust_client_ip_headers",
                "spec.enable_trust_client_ip_headers"
              ],
              "reason": "Trust client IP headers or not"
            },
            {
              "name": "service_policies_source",
              "fields": [
                "spec.service_policies_from_namespace",
                "spec.active_service_policies",
                "spec.no_service_policies"
              ],
              "reason": "Service policies from namespace, active list, or none"
            },
            {
              "name": "sensitive_data_policy",
              "fields": [
                "spec.default_sensitive_data_policy",
                "spec.sensitive_data_policy"
              ],
              "reason": "Use default or custom sensitive data policy"
            },
            {
              "name": "load_balancing_algorithm",
              "fields": [
                "spec.least_active",
                "spec.random",
                "spec.ring_hash",
                "spec.round_robin"
              ],
              "reason": "Choose exactly one load balancing algorithm"
            }
          ],
          "example_yaml": "apiVersion: v1\nkind: http_loadbalancer\nmetadata:\n  name: example-app\n  namespace: default\nspec:\n  domains:\n    - example.com\n  https_auto_cert: {}\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"example-app\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"domains\": [\"ar-test.example.com\"],\n    \"advertise_on_public_default_vip\": {},\n    \"http\": {\"port\": 80}\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewshttp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerCredentials": {
        "type": "object",
        "description": "Configure credential details, including type(e.g., API Key, bearer token) and role.",
        "title": "Credentials",
        "x-displayname": "Credential Details.",
        "x-ves-oneof-field-credentials_choice": "[\"api_key\",\"basic_auth\",\"bearer_token\",\"login_endpoint\"]",
        "x-ves-oneof-field-role_choice": "[\"admin\",\"standard\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.Credentials",
        "properties": {
          "admin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "standard"
            ]
          },
          "api_key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerApiKey"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "basic_auth",
              "bearer_token",
              "login_endpoint"
            ]
          },
          "basic_auth": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerBasicAuthentication"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_key",
              "bearer_token",
              "login_endpoint"
            ]
          },
          "bearer_token": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerBearer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bearer token.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_key",
              "basic_auth",
              "login_endpoint"
            ]
          },
          "credential_name": {
            "type": "string",
            "description": "Enter a unique name for the credentials used in API testing.",
            "title": "Credential Name",
            "maxLength": 64,
            "x-displayname": "Name",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-f5xc-example": "example",
            "x-f5xc-description-short": "Enter a unique name for the credentials used in API testing.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "login_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerLoginEndpoint"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "api_key",
              "basic_auth",
              "bearer_token"
            ]
          },
          "standard": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "admin"
            ]
          }
        },
        "x-f5xc-description-short": "Configure credential details, including type(e.g., API Key, bearer token) and role.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerCredentials",
          "required_fields": [
            "credential_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"credential_name\": \"example\"\n}",
          "example_yaml": "credential_name: example"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a http_loadbalancer",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerGetAPIEndpointsForGroupsReq": {
        "type": "object",
        "description": "Request shape for GET API Endpoints For Groups.",
        "title": "Get API Endpoints For Groups Request",
        "x-displayname": "GET API Endpoints For Groups.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetAPIEndpointsForGroupsReq",
        "properties": {
          "name": {
            "type": "string",
            "description": "HTTP LoadBalancer for the current request.",
            "title": "Http LoadBalancer Name",
            "x-displayname": "HTTP LoadBalancer Name.",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "HTTP LoadBalancer for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the HTTP LoadBalancer for the current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the HTTP LoadBalancer for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Request shape for GET API Endpoints For Groups.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerGetAPIEndpointsForGroupsReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerGetAPIEndpointsForGroupsRsp": {
        "type": "object",
        "description": "Response shape for GET API Endpoints For Groups request.",
        "title": "Get API Endpoints For Groups Response",
        "x-displayname": "GET API Endpoints For Groups Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetAPIEndpointsForGroupsRsp",
        "properties": {
          "api_endpoints": {
            "type": "array",
            "description": "A list of API endpoints associated with the HTTP Loadbalancer.",
            "title": "API Endpoints",
            "items": {
              "$ref": "#/components/schemas/http_loadbalancerAPIGroupsApiep"
            },
            "x-displayname": "API Endpoints.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of API endpoints associated with the HTTP Loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "apieps_timestamp": {
            "type": "string",
            "description": "The API endpoints timestamp indicates most recent update of API endpoints happened\nThe API Discovery periodically updates the API endpoints list based on application's traffic.",
            "title": "apieps_timestamp",
            "format": "date-time",
            "x-displayname": "API Endpoints Timestamp.",
            "x-f5xc-description-short": "The API endpoints timestamp indicates most recent update of API endpoints happened The API Discovery periodically updates the API endpoints list...",
            "x-f5xc-description-medium": "The API endpoints timestamp indicates most recent update of API endpoints happened The API Discovery periodically updates the API endpoints list based on application's traffic.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for GET API Endpoints For Groups request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerGetAPIEndpointsForGroupsRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerGetAPIEndpointsSchemaUpdatesReq": {
        "type": "object",
        "description": "Request shape for GET API Endpoints Schema Updates.",
        "title": "Get API Endpoints Schema Updates Request",
        "x-displayname": "GET API Endpoints Schema Updates Request.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetAPIEndpointsSchemaUpdatesReq",
        "properties": {
          "api_endpoints_filter": {
            "type": "array",
            "description": "The list of discovered API endpoint to GET schema for.\nNOTE: if empty, then the all API endpoints with schema changes would be returned.",
            "title": "API Endpoints Filter",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/viewsApiOperation"
            },
            "x-displayname": "API Endpoints Filter.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "100"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "100"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of discovered API endpoint to GET schema for.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 100,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the HTTP Loadbalancer for the current request.",
            "title": "Name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "x-f5xc-description-short": "The name of the HTTP Loadbalancer for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace of the HTTP Loadbalancer for the current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "The namespace of the HTTP Loadbalancer for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerApiInventorySchemaQueryType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request shape for GET API Endpoints Schema Updates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerGetAPIEndpointsSchemaUpdatesReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerGetAPIEndpointsSchemaUpdatesResp": {
        "type": "object",
        "description": "Response shape for GET API Endpoints Schema Updates.",
        "title": "Get API Endpoints Schema Updates Response",
        "x-displayname": "GET API Endpoints Schema Updates Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetAPIEndpointsSchemaUpdatesResp",
        "properties": {
          "api_endpoints_current_schemas": {
            "type": "array",
            "description": "The list of discovered API endpoints with current schemas.",
            "title": "API Endpoints Current Schemas",
            "items": {
              "$ref": "#/components/schemas/viewsApiEndpointWithSchema"
            },
            "x-displayname": "API Endpoints Current Schemas.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of discovered API endpoints with current schemas.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_endpoints_updated_schemas": {
            "type": "array",
            "description": "The list of API Inventory API endpoints with updated schemas.",
            "title": "API Endpoints Updated Schemas",
            "items": {
              "$ref": "#/components/schemas/viewsApiEndpointWithSchema"
            },
            "x-displayname": "API Endpoints Updated Schemas.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of API Inventory API endpoints with updated schemas.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for GET API Endpoints Schema Updates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerGetAPIEndpointsSchemaUpdatesResp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerGetDnsInfoResponse": {
        "type": "object",
        "description": "Response for GET-DNS-info API.",
        "title": "GetDnsInfoResponse",
        "x-displayname": "GET DNS Info Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetDnsInfoResponse",
        "properties": {
          "dns_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_host_dns_infoGlobalSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerGetDnsInfoResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read http_loadbalancer",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewshttp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/http_loadbalancerStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerGetSecurityConfigReq": {
        "type": "object",
        "description": "Request of GET Security Config Spec API.",
        "title": "Get Security Config request",
        "x-displayname": "GET Security Config Request.",
        "x-ves-oneof-field-loadbalancer_choice": "[\"all_http_loadbalancers\",\"http_loadbalancers_list\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetSecurityConfigReq",
        "properties": {
          "all_http_loadbalancers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for all http loadbalancers.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_loadbalancers_list"
            ]
          },
          "http_loadbalancers_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerHTTPLoadBalancerList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_http_loadbalancers"
            ]
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the HTTP Load Balancer for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Namespace of the HTTP Load Balancer for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Request of GET Security Config Spec API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerGetSecurityConfigReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerHTTPLoadBalancerList": {
        "type": "object",
        "title": "List of http load balancers",
        "x-displayname": "List of HTTP Load Balancers.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.HTTPLoadBalancerList",
        "properties": {
          "http_loadbalancer": {
            "type": "array",
            "description": "Configuration parameter for http loadbalancer",
            "title": "HTTP LoadBalancer",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "HTTP LoadBalancer.",
            "x-ves-example": "[blogging-app]",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-example": "[blogging-app]",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-description-short": "Configuration parameter for http loadbalancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 5,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerHTTPLoadBalancerList",
          "required_fields": [
            "http_loadbalancer"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"http_loadbalancer\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "http_loadbalancer:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerHashPolicyListType": {
        "type": "object",
        "description": "List of hash policy rules.",
        "title": "Hash Policy List",
        "x-displayname": "Hash Policy List.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.HashPolicyListType",
        "properties": {
          "hash_policy": {
            "type": "array",
            "description": "Specifies a list of hash policies to use for ring hash load balancing. Each\nhash policy is evaluated individually and the combined result is used to\nroute the request.",
            "title": "hash_policy",
            "maxItems": 8,
            "items": {
              "$ref": "#/components/schemas/routeHashPolicyType"
            },
            "x-displayname": "Hash Policy.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-description-medium": "Specifies a list of hash policies to use for ring hash load balancing. Each hash policy is evaluated individually and the combined result is used to route the request.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 8,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerHashPolicyListType",
          "required_fields": [
            "hash_policy"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"hash_policy\": [\n    {}\n  ]\n}",
          "example_yaml": "hash_policy:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerL7DDoSProtectionSettings": {
        "type": "object",
        "description": "L7 DDoS protection is critical for safeguarding web applications, APIs, and services that are exposed to the internet\nfrom sophisticated, volumetric, application-level threats. Configure actions, thresholds and policies to apply during\nL7 DDoS attack.",
        "title": "L7 DDoS Protection Settings",
        "x-displayname": "L7 DDoS Protection Settings.",
        "x-ves-oneof-field-clientside_action_choice": "[\"clientside_action_captcha_challenge\",\"clientside_action_js_challenge\",\"clientside_action_none\"]",
        "x-ves-oneof-field-ddos_policy_choice": "[\"ddos_policy_custom\",\"ddos_policy_none\"]",
        "x-ves-oneof-field-mitigation_action_choice": "[\"mitigation_block\",\"mitigation_captcha_challenge\",\"mitigation_js_challenge\"]",
        "x-ves-oneof-field-rps_threshold_choice": "[\"default_rps_threshold\",\"rps_threshold\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.L7DDoSProtectionSettings",
        "properties": {
          "clientside_action_captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "clientside_action_js_challenge",
              "clientside_action_none"
            ]
          },
          "clientside_action_js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "clientside_action_captcha_challenge",
              "clientside_action_none"
            ]
          },
          "clientside_action_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "clientside_action_captcha_challenge",
              "clientside_action_js_challenge"
            ]
          },
          "ddos_policy_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ddos policy custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ddos_policy_none"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "ddos_policy_custom",
                "gated_by": {
                  "choice": "ddos_policy_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "ddos_policy_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ddos policy none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ddos_policy_custom"
            ]
          },
          "default_rps_threshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default rps threshold.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "rps_threshold"
            ]
          },
          "mitigation_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mitigation_captcha_challenge",
              "mitigation_js_challenge"
            ]
          },
          "mitigation_captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mitigation_block",
              "mitigation_js_challenge"
            ]
          },
          "mitigation_js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mitigation_block",
              "mitigation_captcha_challenge"
            ]
          },
          "rps_threshold": {
            "type": "integer",
            "description": "Exclusive with [default_rps_threshold]\nConfigure custom RPS threshold.",
            "title": "Custom RPS Threshold",
            "format": "int64",
            "x-displayname": "Custom",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "50000"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "50000"
            },
            "x-f5xc-description-short": "Exclusive with [default_rps_threshold] Configure custom RPS threshold.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 50000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "source": "minimum_configs",
              "enumValues": [
                "default_rps_threshold",
                "custom_rps_threshold"
              ],
              "default": "default_rps_threshold",
              "description": "Requests per second threshold for DDoS detection"
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_rps_threshold"
            ]
          }
        },
        "x-f5xc-description-short": "L7 DDoS protection is critical for safeguarding web applications, APIs, and services that are exposed to the internet from sophisticated...",
        "x-f5xc-description-medium": "L7 DDoS protection is critical for safeguarding web applications, APIs, and services that are exposed to the internet from sophisticated, volumetric, application-level threats. Configure actions, thresholds and policies to apply during L7 DDoS attack.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerL7DDoSProtectionSettings",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerListAvailableAPIDefinitionsResp": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ListAvailableAPIDefinitionsResp",
        "properties": {
          "available_api_definitions": {
            "type": "array",
            "description": "The list of references to available API Definition objects.",
            "title": "Available API Definitions",
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Available API Definitions.",
            "x-f5xc-description-short": "The list of references to available API Definition objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerListAvailableAPIDefinitionsResp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of http_loadbalancer",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/http_loadbalancerListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerListResponseItem": {
        "type": "object",
        "description": "By default a summary of http_loadbalancer is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of http_loadbalancer",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this http_loadbalancer.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this http_loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this http_loadbalancer.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this http_loadbalancer.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates http_loadbalancer is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates http_loadbalancer is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewshttp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this http_loadbalancer.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this http_loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this http_loadbalancer.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/http_loadbalancerStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this http_loadbalancer.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this http_loadbalancer.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of http_loadbalancer is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of http_loadbalancer is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerLoginEndpoint": {
        "type": "object",
        "title": "Login Endpoint",
        "x-displayname": "Login Endpoint.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.LoginEndpoint",
        "properties": {
          "json_payload": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for json payload.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "type": "string",
            "description": "URL path for the endpoint",
            "title": "Login Endpoint Path",
            "maxLength": 1024,
            "x-displayname": "Path",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "1024"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "1024"
            },
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "token_response_key": {
            "type": "string",
            "description": "Specifies the key name used to extract the authentication token from the login response, such as token or access_token.",
            "title": "Token Response Key",
            "x-displayname": "Token Response Key.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Specifies the key name used to extract the authentication token from the login response, such as token or access_token.",
            "x-f5xc-description-medium": "Specifies the key name used to extract the authentication token from the login response, such as token or access_token.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerLoginEndpoint",
          "required_fields": [
            "path",
            "token_response_key"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/api/v1/resources\",\n  \"token_response_key\": \"example\"\n}",
          "example_yaml": "path: /api/v1/resources\ntoken_response_key: example"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerOriginServerSubsetRuleListType": {
        "type": "object",
        "description": "List of Origin Pools.",
        "title": "OriginServerSubsetRuleListType",
        "x-displayname": "Origin Server Subset Rule List Type.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.OriginServerSubsetRuleListType",
        "properties": {
          "origin_server_subset_rules": {
            "type": "array",
            "description": "Origin Server Subset Rules allow users to define match condition on Client (IP address, ASN, Country), IP Reputation, Regional Edge names,\nRequest for subset selection of origin servers. Origin Server Subset is a sequential engine where rules are evaluated one after the other.\nIt's important to define the correct order for Origin Server Subset to GET the intended result, rules are evaluated from top to bottom in the list.\nWhen an Origin server subset rule is matched, then this selection rule takes effect and no more rules are evaluated.",
            "title": "Origin Server Subset",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyOriginServerSubsetRule"
            },
            "x-displayname": "Origin Server Subset Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Origin Server Subset Rules allow users to define match condition on Client (IP address, ASN, Country), IP Reputation, Regional Edge names, Request...",
            "x-f5xc-description-medium": "Origin Server Subset Rules allow users to define match condition on Client (IP address, ASN, Country), IP Reputation, Regional Edge names, Request for subset selection of origin servers. Origin Server Subset is a sequential engine where rules are evaluated one after the other. It's important to...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerOriginServerSubsetRuleListType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerProxyTypeHttp": {
        "type": "object",
        "description": "Choice for selecting HTTP proxy.",
        "title": "HTTP Choice",
        "x-displayname": "HTTP Choice.",
        "x-ves-displayorder": "1,3",
        "x-ves-oneof-field-port_choice": "[\"port\",\"port_ranges\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ProxyTypeHttp",
        "properties": {
          "dns_volterra_managed": {
            "type": "boolean",
            "description": "DNS records for domains will be managed automatically by F5 Distributed Cloud.\nAs a prerequisite, the domain must be delegated to F5 Distributed Cloud using Delegated domain feature\nor a DNS CNAME record should be created in your DNS provider's portal.",
            "title": "Manage DNS Domain",
            "format": "boolean",
            "x-displayname": "Automatically Manage DNS Records.",
            "x-f5xc-description-short": "DNS records for domains will be managed automatically by F5 Distributed Cloud.",
            "x-f5xc-description-medium": "DNS records for domains will be managed automatically by F5 Distributed Cloud. As a prerequisite, the domain must be delegated to F5 Distributed Cloud using Delegated domain feature or a DNS CNAME record should be created in your DNS provider's portal.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nHTTP port to Listen.",
            "title": "HTTP port to listen",
            "format": "int64",
            "x-displayname": "HTTP Listen Port.",
            "x-ves-example": "80",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "80",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] HTTP port to Listen.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "title": "Port_ranges",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "80,443,8080-8191,9080.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "80,443,8080-8191,9080",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerProxyTypeHttp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerProxyTypeHttps": {
        "type": "object",
        "description": "Choice for selecting HTTP proxy with bring your own certificates.",
        "title": "BYOC HTTPS Choice",
        "x-displayname": "BYOC HTTPS Choice.",
        "x-ves-displayorder": "1,2,24,3,4,9,16,19,20",
        "x-ves-oneof-field-default_lb_choice": "[\"default_loadbalancer\",\"non_default_loadbalancer\"]",
        "x-ves-oneof-field-path_normalize_choice": "[\"disable_path_normalize\",\"enable_path_normalize\"]",
        "x-ves-oneof-field-port_choice": "[\"port\",\"port_ranges\"]",
        "x-ves-oneof-field-server_header_choice": "[\"append_server_name\",\"default_header\",\"pass_through\",\"server_name\"]",
        "x-ves-oneof-field-tls_certificates_choice": "[\"tls_cert_params\",\"tls_parameters\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ProxyTypeHttps",
        "properties": {
          "add_hsts": {
            "type": "boolean",
            "description": "Add HTTP Strict-Transport-Security response header.",
            "title": "Add HSTS",
            "format": "boolean",
            "x-displayname": "Add HSTS Header.",
            "x-f5xc-description-short": "Add HTTP Strict-Transport-Security response header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "append_server_name": {
            "type": "string",
            "description": "Exclusive with [default_header pass_through server_name]\nDefine the header value for the header name “server”.\nIf header value is already present, it is not overwritten and passed as-is.",
            "title": "append_server_name",
            "maxLength": 8096,
            "x-displayname": "Append header value.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [default_header pass_through server_name] Define the header value for the header name “server”.",
            "x-f5xc-description-medium": "Exclusive with [default_header pass_through server_name] Define the header value for the header name “server”. If header value is already present, it is not overwritten and passed as-is.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_header",
              "pass_through",
              "server_name"
            ]
          },
          "coalescing_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTLSCoalescingOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for coalescing options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "connection_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for downstream connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 2 minutes.",
            "title": "Connection Idle Timeout",
            "format": "int64",
            "x-displayname": "Connection Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "default_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "pass_through",
              "server_name"
            ]
          },
          "default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "non_default_loadbalancer"
            ]
          },
          "disable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_path_normalize"
            ]
          },
          "enable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_path_normalize"
            ]
          },
          "http_protocol_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostHttpProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_redirect": {
            "type": "boolean",
            "description": "Redirect HTTP traffic to HTTPS.",
            "title": "HTTP Redirect",
            "format": "boolean",
            "x-displayname": "HTTP Redirect to HTTPS.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "non_default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for non default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_loadbalancer"
            ]
          },
          "pass_through": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for pass through.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "server_name"
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nHTTPS port to Listen.",
            "title": "HTTPS port to listen",
            "format": "int64",
            "x-displayname": "HTTPS Port.",
            "x-ves-example": "443",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "443",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] HTTPS port to Listen.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "title": "Port_ranges",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "80,443,8080-8191,9080.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "80,443,8080-8191,9080",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port"
            ]
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [append_server_name default_header pass_through]\nDefine the header value for the header name “server”.\nThis will overwrite existing values, if any, for the server header.",
            "title": "server_name",
            "maxLength": 8096,
            "x-displayname": "Modify header value.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [append_server_name default_header pass_through] Define the header value for the header name “server”.",
            "x-f5xc-description-medium": "Exclusive with [append_server_name default_header pass_through] Define the header value for the header name “server”. This will overwrite existing values, if any, for the server header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "pass_through"
            ]
          },
          "tls_cert_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsDownstreamTLSCertsParams"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls cert params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_parameters"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsDownstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_cert_params"
            ]
          }
        },
        "x-f5xc-description-short": "Choice for selecting HTTP proxy with bring your own certificates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerProxyTypeHttps",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerProxyTypeHttpsAutoCerts": {
        "type": "object",
        "description": "Choice for selecting HTTP proxy with bring your own certificates.",
        "title": "HTTPS with Auto Certs Choice",
        "x-displayname": "HTTPS with Auto Certs Choice.",
        "x-ves-displayorder": "1,2,25,3,4,7,12,19,22,23",
        "x-ves-oneof-field-default_lb_choice": "[\"default_loadbalancer\",\"non_default_loadbalancer\"]",
        "x-ves-oneof-field-mtls_choice": "[\"no_mtls\",\"use_mtls\"]",
        "x-ves-oneof-field-path_normalize_choice": "[\"disable_path_normalize\",\"enable_path_normalize\"]",
        "x-ves-oneof-field-port_choice": "[\"port\",\"port_ranges\"]",
        "x-ves-oneof-field-server_header_choice": "[\"append_server_name\",\"default_header\",\"pass_through\",\"server_name\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ProxyTypeHttpsAutoCerts",
        "properties": {
          "add_hsts": {
            "type": "boolean",
            "description": "Add HTTP Strict-Transport-Security response header.",
            "title": "Add HSTS",
            "format": "boolean",
            "x-displayname": "Add HSTS Header.",
            "x-f5xc-description-short": "Add HTTP Strict-Transport-Security response header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "append_server_name": {
            "type": "string",
            "description": "Exclusive with [default_header pass_through server_name]\nDefine the header value for the header name “server”.\nIf header value is already present, it is not overwritten and passed as-is.",
            "title": "append_server_name",
            "maxLength": 8096,
            "x-displayname": "Append header value.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [default_header pass_through server_name] Define the header value for the header name “server”.",
            "x-f5xc-description-medium": "Exclusive with [default_header pass_through server_name] Define the header value for the header name “server”. If header value is already present, it is not overwritten and passed as-is.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_header",
              "pass_through",
              "server_name"
            ]
          },
          "coalescing_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTLSCoalescingOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for coalescing options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "default_coalescing",
                "disable_coalescing",
                "enable_for_same_origin"
              ],
              "default": null,
              "description": "HTTP/2 connection coalescing options (null in API = implicit default)"
            }
          },
          "connection_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for downstream connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 2 minutes.",
            "title": "Connection Idle Timeout",
            "format": "int64",
            "x-displayname": "Connection Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "source": "minimum_configs",
              "minimum": 0,
              "default": 0,
              "description": "Connection idle timeout in milliseconds (0 = system default 120000ms, max 600000 = 10 minutes)"
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "default": 0,
            "x-f5xc-server-default": true
          },
          "default_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "pass_through",
              "server_name"
            ]
          },
          "default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "non_default_loadbalancer"
            ]
          },
          "disable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_path_normalize"
            ]
          },
          "enable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "disable_path_normalize"
            ]
          },
          "http_protocol_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostHttpProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "http_protocol_enable_v1_only",
                "http_protocol_enable_v1_v2",
                "http_protocol_enable_v2_only"
              ],
              "default": null,
              "description": "HTTP protocol versions to enable (null in API = implicit v1+v2)"
            }
          },
          "http_redirect": {
            "type": "boolean",
            "description": "Redirect HTTP traffic to HTTPS.",
            "title": "HTTP Redirect",
            "format": "boolean",
            "x-displayname": "HTTP Redirect to HTTPS.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "no_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "use_mtls"
            ]
          },
          "non_default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for non default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_loadbalancer"
            ]
          },
          "pass_through": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for pass through.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "server_name"
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nHTTPS port to Listen.",
            "title": "HTTPS port to listen",
            "format": "int64",
            "x-displayname": "HTTPS Listen Port.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "8080",
            "x-f5xc-description-short": "Exclusive with [port_ranges] HTTPS port to Listen.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "source": "minimum_configs",
              "default": 443,
              "description": "HTTPS port number"
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "title": "Port_ranges",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "80,443,8080-8191,9080.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "80,443,8080-8191,9080",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port"
            ]
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [append_server_name default_header pass_through]\nDefine the header value for the header name “server”.\nThis will overwrite existing values, if any, for the server header.",
            "title": "server_name",
            "maxLength": 8096,
            "x-displayname": "Modify header value.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [append_server_name default_header pass_through] Define the header value for the header name “server”.",
            "x-f5xc-description-medium": "Exclusive with [append_server_name default_header pass_through] Define the header value for the header name “server”. This will overwrite existing values, if any, for the server header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "pass_through"
            ]
          },
          "tls_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsTlsConfig"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "default_security",
                "medium_security",
                "low_security",
                "custom_security"
              ],
              "default": "default_security",
              "description": "TLS security level configuration"
            }
          },
          "use_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsDownstreamTlsValidationContext"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_mtls"
            ]
          }
        },
        "x-f5xc-description-short": "Choice for selecting HTTP proxy with bring your own certificates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerProxyTypeHttpsAutoCerts",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a http_loadbalancer",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewshttp_loadbalancerReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "HTTP/HTTPS load balancer for distributing traffic across origin pools",
          "required_fields": [],
          "mutually_exclusive_groups": [
            {
              "name": "lb_type",
              "fields": [
                "spec.http",
                "spec.https",
                "spec.https_auto_cert"
              ],
              "reason": "Choose exactly one load balancer type"
            },
            {
              "name": "advertising",
              "fields": [
                "spec.advertise_on_public_default_vip",
                "spec.advertise_on_public",
                "spec.advertise_custom",
                "spec.do_not_advertise"
              ],
              "reason": "Choose exactly one advertising method"
            },
            {
              "name": "waf",
              "fields": [
                "spec.app_firewall",
                "spec.disable_waf"
              ],
              "reason": "WAF enabled or disabled"
            },
            {
              "name": "bot_defense",
              "fields": [
                "spec.bot_defense",
                "spec.bot_defense_advanced",
                "spec.disable_bot_defense"
              ],
              "reason": "Bot defense enabled or disabled"
            },
            {
              "name": "rate_limit",
              "fields": [
                "spec.api_rate_limit",
                "spec.disable_rate_limit",
                "spec.rate_limit"
              ],
              "reason": "Rate limiting enabled or disabled"
            },
            {
              "name": "api_discovery",
              "fields": [
                "spec.disable_api_discovery",
                "spec.enable_api_discovery"
              ],
              "reason": "API discovery enabled or disabled"
            },
            {
              "name": "api_testing",
              "fields": [
                "spec.api_testing",
                "spec.disable_api_testing"
              ],
              "reason": "API testing enabled or disabled"
            },
            {
              "name": "api_definition",
              "fields": [
                "spec.api_specification",
                "spec.disable_api_definition"
              ],
              "reason": "API definition enabled or disabled"
            },
            {
              "name": "malware_protection",
              "fields": [
                "spec.disable_malware_protection",
                "spec.malware_protection_settings"
              ],
              "reason": "Malware protection enabled or disabled"
            },
            {
              "name": "client_side_defense",
              "fields": [
                "spec.client_side_defense",
                "spec.disable_client_side_defense"
              ],
              "reason": "Client-side defense enabled or disabled"
            },
            {
              "name": "ip_reputation",
              "fields": [
                "spec.disable_ip_reputation",
                "spec.enable_ip_reputation"
              ],
              "reason": "IP reputation enabled or disabled"
            },
            {
              "name": "threat_mesh",
              "fields": [
                "spec.disable_threat_mesh",
                "spec.enable_threat_mesh"
              ],
              "reason": "Threat mesh enabled or disabled"
            },
            {
              "name": "malicious_user_detection",
              "fields": [
                "spec.disable_malicious_user_detection",
                "spec.enable_malicious_user_detection"
              ],
              "reason": "Malicious user detection enabled or disabled"
            },
            {
              "name": "tls_config",
              "fields": [
                "spec.https_auto_cert.tls_config.default_security",
                "spec.https_auto_cert.tls_config.medium_security",
                "spec.https_auto_cert.tls_config.low_security",
                "spec.https_auto_cert.tls_config.custom_security"
              ],
              "reason": "Choose exactly one TLS security level"
            },
            {
              "name": "mtls",
              "fields": [
                "spec.https_auto_cert.no_mtls",
                "spec.https_auto_cert.use_mtls"
              ],
              "reason": "Mutual TLS enabled or disabled"
            },
            {
              "name": "server_name_header",
              "fields": [
                "spec.https_auto_cert.append_server_name",
                "spec.https_auto_cert.default_header",
                "spec.https_auto_cert.pass_through",
                "spec.https_auto_cert.server_name"
              ],
              "reason": "Choose exactly one server name header handling"
            },
            {
              "name": "path_normalize",
              "fields": [
                "spec.https_auto_cert.enable_path_normalize",
                "spec.https_auto_cert.disable_path_normalize"
              ],
              "reason": "Path normalization enabled or disabled"
            },
            {
              "name": "loadbalancer_choice",
              "fields": [
                "spec.https_auto_cert.non_default_loadbalancer",
                "spec.https_auto_cert.default_loadbalancer"
              ],
              "reason": "Choose default or non-default load balancer"
            },
            {
              "name": "http_protocol",
              "fields": [
                "spec.https_auto_cert.http_protocol_options.http_protocol_enable_v1_only",
                "spec.https_auto_cert.http_protocol_options.http_protocol_enable_v1_v2",
                "spec.https_auto_cert.http_protocol_options.http_protocol_enable_v2_only"
              ],
              "reason": "Choose exactly one HTTP protocol version configuration"
            },
            {
              "name": "coalescing",
              "fields": [
                "spec.https_auto_cert.coalescing_options.default_coalescing",
                "spec.https_auto_cert.coalescing_options.strict_coalescing"
              ],
              "reason": "Choose exactly one connection coalescing option"
            },
            {
              "name": "ddos_mitigation",
              "fields": [
                "spec.l7_ddos_protection.mitigation_block",
                "spec.l7_ddos_protection.mitigation_captcha_challenge",
                "spec.l7_ddos_protection.mitigation_js_challenge"
              ],
              "reason": "Choose exactly one DDoS mitigation action"
            },
            {
              "name": "ddos_rps_threshold",
              "fields": [
                "spec.l7_ddos_protection.default_rps_threshold",
                "spec.l7_ddos_protection.rps_threshold"
              ],
              "reason": "Choose default or custom RPS threshold"
            },
            {
              "name": "ddos_clientside_action",
              "fields": [
                "spec.l7_ddos_protection.clientside_action_captcha_challenge",
                "spec.l7_ddos_protection.clientside_action_js_challenge",
                "spec.l7_ddos_protection.clientside_action_none"
              ],
              "reason": "Choose exactly one client-side DDoS action"
            },
            {
              "name": "ddos_policy",
              "fields": [
                "spec.l7_ddos_protection.ddos_policy_custom",
                "spec.l7_ddos_protection.ddos_policy_none"
              ],
              "reason": "DDoS policy reference or none"
            },
            {
              "name": "challenge",
              "fields": [
                "spec.no_challenge",
                "spec.js_challenge",
                "spec.captcha_challenge",
                "spec.enable_challenge",
                "spec.policy_based_challenge"
              ],
              "reason": "Choose exactly one challenge type"
            },
            {
              "name": "user_identification",
              "fields": [
                "spec.user_id_client_ip",
                "spec.user_identification"
              ],
              "reason": "Choose user identification method"
            },
            {
              "name": "client_ip_headers",
              "fields": [
                "spec.disable_trust_client_ip_headers",
                "spec.enable_trust_client_ip_headers"
              ],
              "reason": "Trust client IP headers or not"
            },
            {
              "name": "service_policies_source",
              "fields": [
                "spec.service_policies_from_namespace",
                "spec.active_service_policies",
                "spec.no_service_policies"
              ],
              "reason": "Service policies from namespace, active list, or none"
            },
            {
              "name": "sensitive_data_policy",
              "fields": [
                "spec.default_sensitive_data_policy",
                "spec.sensitive_data_policy"
              ],
              "reason": "Use default or custom sensitive data policy"
            },
            {
              "name": "load_balancing_algorithm",
              "fields": [
                "spec.least_active",
                "spec.random",
                "spec.ring_hash",
                "spec.round_robin"
              ],
              "reason": "Choose exactly one load balancing algorithm"
            }
          ],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerRouteSimpleAdvancedOptions": {
        "type": "object",
        "description": "Configure advanced OPTIONS for route like path rewrite, hash policy, etc.",
        "title": "Advanced Route Options",
        "x-displayname": "Advanced Route OPTIONS.",
        "x-ves-oneof-field-bot_defense_javascript_injection_choice": "[\"bot_defense_javascript_injection\",\"inherited_bot_defense_javascript_injection\"]",
        "x-ves-oneof-field-buffer_choice": "[\"buffer_policy\",\"common_buffering\"]",
        "x-ves-oneof-field-cluster_retract_choice": "[\"do_not_retract_cluster\",\"retract_cluster\"]",
        "x-ves-oneof-field-hash_policy_choice": "[\"common_hash_policy\",\"specific_hash_policy\"]",
        "x-ves-oneof-field-mirroring_choice": "[\"disable_mirroring\",\"mirror_policy\"]",
        "x-ves-oneof-field-retry_policy_choice": "[\"default_retry_policy\",\"no_retry_policy\",\"retry_policy\"]",
        "x-ves-oneof-field-rewrite_choice": "[\"disable_prefix_rewrite\",\"prefix_rewrite\",\"regex_rewrite\"]",
        "x-ves-oneof-field-spdy_choice": "[\"disable_spdy\",\"enable_spdy\"]",
        "x-ves-oneof-field-waf_choice": "[\"app_firewall\",\"disable_waf\",\"inherited_waf\"]",
        "x-ves-oneof-field-waf_exclusion_choice": "[\"inherited_waf_exclusion\",\"waf_exclusion_policy\"]",
        "x-ves-oneof-field-websocket_choice": "[\"disable_web_socket_config\",\"web_socket_config\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.RouteSimpleAdvancedOptions",
        "properties": {
          "app_firewall": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_waf",
              "inherited_waf"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "app_firewall",
                "field_path": "app_firewall",
                "gated_by": {
                  "choice": "waf_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "bot_defense_javascript_injection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeBotDefenseJavascriptInjectionType__ves_io_schema_views_http_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inherited_bot_defense_javascript_injection"
            ]
          },
          "buffer_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBufferConfigType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "common_buffering"
            ]
          },
          "common_buffering": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for common buffering.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "buffer_policy"
            ]
          },
          "common_hash_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_hash_policy"
            ]
          },
          "cors_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCorsPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "csrf_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCsrfPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_retry_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_retry_policy",
              "retry_policy"
            ]
          },
          "disable_location_add": {
            "type": "boolean",
            "description": "Disables append of x-F5 Distributed Cloud-location = <RE-site-name> at route level, if it is configured at\nvirtual-host level. This configuration is ignored on CE sites.",
            "title": "disable_location_add",
            "format": "boolean",
            "x-displayname": "Disable Location Addition.",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Disables append of x-F5 Distributed Cloud-location = <RE-site-name> at route level, if it is configured at virtual-host level.",
            "x-f5xc-description-medium": "Disables append of x-F5 Distributed Cloud-location = <RE-site-name> at route level, if it is configured at virtual-host level. This configuration is ignored on CE sites.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_mirroring": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable mirroring.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mirror_policy"
            ]
          },
          "disable_prefix_rewrite": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable prefix rewrite.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "prefix_rewrite",
              "regex_rewrite"
            ]
          },
          "disable_spdy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable spdy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_spdy"
            ]
          },
          "disable_waf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable waf.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall",
              "inherited_waf"
            ]
          },
          "disable_web_socket_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "web_socket_config"
            ]
          },
          "do_not_retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "retract_cluster"
            ]
          },
          "enable_spdy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable spdy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_spdy"
            ]
          },
          "endpoint_subsets": {
            "type": "object",
            "description": "Upstream origin pool may be configured to divide its origin servers into subsets based on metadata\nattached to the origin servers. Routes may then specify the metadata that a endpoint must match in\norder to be selected by the load balancer\n\nFor origin servers which are discovered in K8s or Consul cluster, the label of the service is merged with\nendpoint's labels. In case of Consul, the label is derived from the \"Tag\" field.\nFor labels that are common between configured endpoint and discovered service, labels from discovered service\ntakes precedence.\n\nList of key-value pairs that will be used as matching metadata. Only those origin servers of\nupstream origin pool which match this metadata will be selected for load balancing.",
            "title": "Origin Servers Subset",
            "x-displayname": "Origin Servers Subsets.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "16"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "16"
            },
            "x-f5xc-description-short": "Upstream origin pool may be configured to divide its origin servers into subsets based on metadata attached to the origin servers.",
            "x-f5xc-description-medium": "Upstream origin pool may be configured to divide its origin servers into subsets based on metadata attached to the origin servers. Routes may then specify the metadata that a endpoint must match in order to be selected by the load balancer For origin servers which are discovered in K8s or Consul...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "inherited_bot_defense_javascript_injection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_defense_javascript_injection"
            ]
          },
          "inherited_waf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inherited waf.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall",
              "disable_waf"
            ]
          },
          "inherited_waf_exclusion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inherited waf exclusion.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "waf_exclusion_policy"
            ]
          },
          "mirror_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewshttp_loadbalancerMirrorPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_mirroring"
            ]
          },
          "no_retry_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_retry_policy",
              "retry_policy"
            ]
          },
          "prefix_rewrite": {
            "type": "string",
            "description": "Exclusive with [disable_prefix_rewrite regex_rewrite]\nprefix_rewrite indicates that during forwarding, the matched prefix (or path) should be swapped\nwith its value. When using regex path matching, the entire path (not including\nthe query string) will be swapped with this value.",
            "title": "prefix_rewrite",
            "maxLength": 256,
            "x-displayname": "Enable Prefix Rewrite.",
            "x-ves-example": "/",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [disable_prefix_rewrite regex_rewrite] prefix_rewrite indicates that during forwarding, the matched prefix (or path) should be...",
            "x-f5xc-description-medium": "Exclusive with [disable_prefix_rewrite regex_rewrite] prefix_rewrite indicates that during forwarding, the matched prefix (or path) should be swapped with its value. When using regex path matching, the entire path (not including the query string) will be swapped with this value.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_prefix_rewrite",
              "regex_rewrite"
            ]
          },
          "priority": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRoutingPriority"
              }
            ],
            "x-f5xc-example": "10",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "regex_rewrite": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRegexMatchRewrite"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for regex rewrite.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_prefix_rewrite",
              "prefix_rewrite"
            ]
          },
          "request_cookies_to_add": {
            "type": "array",
            "description": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "title": "Cookies to add in request",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaCookieValueOption"
            },
            "x-displayname": "Add Cookies in Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_cookies_to_remove": {
            "type": "array",
            "description": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "title": "Cookies to be removed from request",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.",
            "title": "Headers to add in request",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Request Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "title": "Header to be removed from request",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Request Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_add": {
            "type": "array",
            "description": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "title": "Cookies to add in set-cookie header in response",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaSetCookieValueOption"
            },
            "x-displayname": "Add Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_remove": {
            "type": "array",
            "description": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "title": "Cookies to be removed from response",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of name of Cookies to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.",
            "title": "Headers to add in response",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Response Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "title": "Header to be removed from response",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Response Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "do_not_retract_cluster"
            ]
          },
          "retry_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRetryPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_retry_policy",
              "no_retry_policy"
            ]
          },
          "specific_hash_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerHashPolicyListType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "common_hash_policy"
            ]
          },
          "timeout": {
            "type": "integer",
            "description": "The timeout for the route including all retries, in milliseconds.\nShould be set to a high value or 0 (infinite timeout) for server-side streaming.",
            "title": "timeout",
            "format": "int64",
            "x-displayname": "Timeout",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The timeout for the route including all retries, in milliseconds. Should be set to a high value or 0 (infinite timeout) for server-side streaming.",
            "x-f5xc-description-medium": "The timeout for the route including all retries, in milliseconds. Should be set to a high value or 0 (infinite timeout) for server-side streaming.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 600000,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "waf_exclusion_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inherited_waf_exclusion"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "waf_exclusion_policy",
                "field_path": "waf_exclusion_policy",
                "gated_by": {
                  "choice": "waf_exclusion_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "web_socket_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeWebsocketConfigType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_web_socket_config"
            ]
          }
        },
        "x-f5xc-description-short": "Configure advanced OPTIONS for route like path rewrite, hash policy, etc.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerRouteSimpleAdvancedOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerRouteTypeCustomRoute": {
        "type": "object",
        "description": "A custom route uses a route object created outside of this view.",
        "title": "RouteTypeCustomRoute",
        "x-displayname": "Custom Route Object.",
        "x-ves-displayorder": "1,2",
        "x-ves-oneof-field-caching": "[\"caching_disable\",\"caching_inherit\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.RouteTypeCustomRoute",
        "properties": {
          "caching_disable": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for caching disable.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "caching_inherit"
            ]
          },
          "caching_inherit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for caching inherit.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "caching_disable"
            ]
          },
          "route_ref": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "route_object",
                "field_path": "route_ref",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Custom route uses a route object created outside of this view.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerRouteTypeCustomRoute",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerRouteTypeDirectResponse": {
        "type": "object",
        "description": "A direct response route matches on path, incoming header, incoming port and/or HTTP method\nand responds directly to the matching traffic.",
        "title": "RouteTypeDirectResponse",
        "x-displayname": "Direct Response Route.",
        "x-ves-displayorder": "2,1,4,5,3",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.RouteTypeDirectResponse",
        "properties": {
          "headers": {
            "type": "array",
            "description": "List of (key, value) headers.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/ioschemaHeaderMatcherType"
            },
            "x-displayname": "Headers",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "incoming_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPortMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "route_direct_response": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeRouteDirectResponse"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for route direct response.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Direct response route matches on path, incoming header, incoming port and/or HTTP method and responds directly to the matching traffic.",
        "x-f5xc-description-medium": "Direct response route matches on path, incoming header, incoming port and/or HTTP method and responds directly to the matching traffic.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerRouteTypeDirectResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerRouteTypeRedirect": {
        "type": "object",
        "description": "A redirect route matches on path, incoming header, incoming port and/or HTTP method\nand redirects the matching traffic to a different URL.",
        "title": "RouteTypeRedirect",
        "x-displayname": "Redirect Route.",
        "x-ves-displayorder": "2,1,4,5,3",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.RouteTypeRedirect",
        "properties": {
          "headers": {
            "type": "array",
            "description": "List of (key, value) headers.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/ioschemaHeaderMatcherType"
            },
            "x-displayname": "Headers",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "incoming_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPortMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "route_redirect": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeRouteRedirect"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for route redirect.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Redirect route matches on path, incoming header, incoming port and/or HTTP method and redirects the matching traffic to a different URL.",
        "x-f5xc-description-medium": "Redirect route matches on path, incoming header, incoming port and/or HTTP method and redirects the matching traffic to a different URL.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerRouteTypeRedirect",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerRouteTypeSimple": {
        "type": "object",
        "description": "A simple route matches on path, incoming header, incoming port and/or HTTP method\nand forwards the matching traffic to the associated pools.",
        "title": "RouteTypeSimple",
        "x-displayname": "Simple Route.",
        "x-ves-displayorder": "2,1,9,10,13,3,4,11,8",
        "x-ves-oneof-field-caching": "[\"caching_disable\",\"caching_inherit\"]",
        "x-ves-oneof-field-host_rewrite_params": "[\"auto_host_rewrite\",\"disable_host_rewrite\",\"host_rewrite\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.RouteTypeSimple",
        "properties": {
          "advanced_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerRouteSimpleAdvancedOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advanced options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "auto_host_rewrite": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_host_rewrite",
              "host_rewrite"
            ]
          },
          "caching_disable": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for caching disable.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "caching_inherit"
            ]
          },
          "caching_inherit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for caching inherit.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "caching_disable"
            ]
          },
          "disable_host_rewrite": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_host_rewrite",
              "host_rewrite"
            ]
          },
          "headers": {
            "type": "array",
            "description": "List of (key, value) headers.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/ioschemaHeaderMatcherType"
            },
            "x-displayname": "Headers",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "host_rewrite": {
            "type": "string",
            "description": "Exclusive with [auto_host_rewrite disable_host_rewrite]\nHost header will be swapped with this value.",
            "title": "HostRewrite",
            "x-displayname": "Host Rewrite Value.",
            "x-ves-example": "One.F5 Distributed cloud.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true"
            },
            "x-f5xc-example": "one.F5 Distributed cloud.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true"
            },
            "x-f5xc-description-short": "Exclusive with [auto_host_rewrite disable_host_rewrite] Host header will be swapped with this value.",
            "x-f5xc-description-medium": "Exclusive with [auto_host_rewrite disable_host_rewrite] Host header will be swapped with this value.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_host_rewrite",
              "disable_host_rewrite"
            ]
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "incoming_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPortMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "origin_pools": {
            "type": "array",
            "description": "Origin Pools for this route.",
            "title": "Origin Pools",
            "minItems": 1,
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "query_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeQueryParamsSimpleRoute"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for query params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Simple route matches on path, incoming header, incoming port and/or HTTP method and forwards the matching traffic to the associated pools.",
        "x-f5xc-description-medium": "Simple route matches on path, incoming header, incoming port and/or HTTP method and forwards the matching traffic to the associated pools.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerRouteTypeSimple",
          "required_fields": [
            "origin_pools"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"origin_pools\": [\n    {}\n  ]\n}",
          "example_yaml": "origin_pools:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerSensitiveDataDisclosureRules": {
        "type": "object",
        "description": "Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses.",
        "title": "Sensitive Data Exposure Rules",
        "x-displayname": "Sensitive Data Exposure Rules.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.SensitiveDataDisclosureRules",
        "properties": {
          "sensitive_data_types_in_response": {
            "type": "array",
            "description": "Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses.",
            "title": "Sensitive Data Exposure Rules",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/http_loadbalancerSensitiveDataTypes__ves_io_schema_views_http_loadbalancer"
            },
            "x-displayname": "Sensitive Data Exposure Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "100",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "100",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses.",
            "x-f5xc-description-medium": "Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 100,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses.",
        "x-f5xc-description-medium": "Sensitive Data Exposure Rules allows specifying rules to mask sensitive data fields in API responses.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerSensitiveDataDisclosureRules",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerSensitiveDataTypes__ves_io_schema_views_http_loadbalancer": {
        "type": "object",
        "description": "Settings to mask sensitive data in request/response payload.",
        "title": "Sensitive Data Types",
        "x-displayname": "Sensitive Data Types.",
        "x-ves-oneof-field-masking_mode_choice": "[\"mask\",\"report\"]",
        "x-ves-oneof-field-type_condition_type_choice": "[\"api_endpoint\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.SensitiveDataTypes",
        "properties": {
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiEndpointDetails"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "body": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerBodySectionMaskingOptions"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mask": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "report"
            ]
          },
          "report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "mask"
            ]
          }
        },
        "x-f5xc-description-short": "Settings to mask sensitive data in request/response payload.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerSensitiveDataTypes",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerSetL7DDoSRPSThresholdReq": {
        "type": "object",
        "description": "Request to set L7 DDoS RPS Threshold.",
        "title": "Set L7 DDoS RPS Threshold Request",
        "x-displayname": "Set L7 DDoS RPS Threshold Request.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.SetL7DDoSRPSThresholdReq",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the HTTP loadbalancer.",
            "title": "Name",
            "x-displayname": "Name",
            "x-ves-example": "Lb_name",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "lb_name",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace scope of the request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Default",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "default",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "rps_threshold": {
            "type": "integer",
            "description": "The new RPS threshold to set.",
            "title": "RPS Threshold",
            "format": "int64",
            "x-displayname": "RPS Threshold.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "20000"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "20000"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 20000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerSetL7DDoSRPSThresholdReq",
          "required_fields": [
            "name",
            "namespace",
            "rps_threshold"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"lb_name\",\n  \"namespace\": \"default\",\n  \"rps_threshold\": 0\n}",
          "example_yaml": "name: lb_name\nnamespace: default\nrps_threshold: 0"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerSetL7DDoSRPSThresholdRsp": {
        "type": "object",
        "description": "Response message for setting the RPS threshold.",
        "title": "SetL7DDoSRPSThresholdRsp",
        "x-displayname": "Set RPS Threshold Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.SetL7DDoSRPSThresholdRsp",
        "x-f5xc-description-short": "Response message for setting the RPS threshold.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerSetL7DDoSRPSThresholdRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerSingleLoadBalancerAppSetting": {
        "type": "object",
        "description": "Specific settings for Machine learning analysis on this HTTP LB, independently from other LBs.",
        "title": "Single load balancer app setting",
        "x-displayname": "Single Load Balancer App Setting.",
        "x-ves-oneof-field-api_discovery_choice": "[\"disable_discovery\",\"enable_discovery\"]",
        "x-ves-oneof-field-malicious_user_detection_choice": "[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.SingleLoadBalancerAppSetting",
        "properties": {
          "disable_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable discovery.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_discovery"
            ]
          },
          "disable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_malicious_user_detection"
            ]
          },
          "enable_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiDiscoverySetting__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable discovery.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_discovery"
            ]
          },
          "enable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_malicious_user_detection"
            ]
          }
        },
        "x-f5xc-description-short": "Specific settings for Machine learning analysis on this HTTP LB, independently from other LBs.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerSingleLoadBalancerAppSetting",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "StatusObject",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.StatusObject",
        "properties": {
          "cdn_site_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_cdnCDNSiteStatus__ves_io_schema_views_http_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "cdn_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_cdnCDNControllerStatus__ves_io_schema_views_http_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "conditions": {
            "type": "array",
            "description": "Conditions represent the normalized status values for configuration object.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions represent the normalized status values for configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "HTTP loadbalancer view object direct reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-description-short": "HTTP loadbalancer view object direct reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_host_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostDNSVHostStatusType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerUpdateAPIEndpointsSchemasReq": {
        "type": "object",
        "description": "Request shape for Update API Endpoints Schemas.",
        "title": "Update API Endpoints Schemas Request",
        "x-displayname": "Update API Endpoints Schemas Request.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.UpdateAPIEndpointsSchemasReq",
        "properties": {
          "api_endpoints_schema_updates": {
            "type": "array",
            "description": "The list of API Inventory API endpoints schema updates.",
            "title": "API Endpoints Schema Updates",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/viewsApiEndpointWithSchema"
            },
            "x-displayname": "API Endpoints Schema Updates.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "100",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "100",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of API Inventory API endpoints schema updates.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 100,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the HTTP Loadbalancer for the current request.",
            "title": "Name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "x-f5xc-description-short": "The name of the HTTP Loadbalancer for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace of the HTTP Loadbalancer for the current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "The namespace of the HTTP Loadbalancer for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Request shape for Update API Endpoints Schemas.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerUpdateAPIEndpointsSchemasReq",
          "required_fields": [
            "api_endpoints_schema_updates"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_endpoints_schema_updates\": [\n    {\n      \"schema_json\": \"{}\"\n    }\n  ]\n}",
          "example_yaml": "api_endpoints_schema_updates:\n- schema_json: '{}'"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "http_loadbalancerUpdateAPIEndpointsSchemasResp": {
        "type": "object",
        "description": "Response shape for Update API Endpoints With Newly Discovered Schema.",
        "title": "Update API Endpoints Schema Response",
        "x-displayname": "Update API Endpoints Schema Response.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.UpdateAPIEndpointsSchemasResp",
        "properties": {
          "updated_api_endpoints": {
            "type": "array",
            "description": "The list of API endpoints which were successfully proceeded by the API Inventory request.",
            "title": "Updated API Endpoints",
            "items": {
              "$ref": "#/components/schemas/viewsApiOperation"
            },
            "x-displayname": "Updated API Endpoints.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of API endpoints which were successfully proceeded by the API Inventory request.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for Update API Endpoints With Newly Discovered Schema.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for http_loadbalancerUpdateAPIEndpointsSchemasResp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "ioschemaPathMatcherType": {
        "type": "object",
        "description": "Path match of the URI can be either be, Prefix match or exact match or regular expression match.",
        "title": "PathMatcherType",
        "x-displayname": "Path to Match.",
        "x-ves-displayorder": "4",
        "x-ves-oneof-field-path_match": "[\"path\",\"prefix\",\"regex\"]",
        "x-ves-proto-message": "ves.io.schema.PathMatcherType",
        "properties": {
          "path": {
            "type": "string",
            "description": "Exclusive with [prefix regex]\nExact path value to match.",
            "title": "exact",
            "maxLength": 256,
            "x-displayname": "Exact",
            "x-ves-example": "/logout",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/logout",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [prefix regex] Exact path value to match.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "prefix",
              "regex"
            ]
          },
          "prefix": {
            "type": "string",
            "description": "Exclusive with [path regex]\nPath prefix to match (e.g. The value / will match on all paths)",
            "title": "prefix",
            "maxLength": 256,
            "x-displayname": "Prefix",
            "x-ves-example": "/register/.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/register/",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [path regex] Path prefix to match (e.g. The value / will match on all paths)",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "path",
              "regex"
            ]
          },
          "regex": {
            "type": "string",
            "description": "Exclusive with [path prefix]\nRegular expression of path match (e.g. The value .* will match on all paths)",
            "title": "regex",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Regex",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-description-short": "Exclusive with [path prefix] Regular expression of path match (e.g. The value .* will match on all paths)",
            "x-f5xc-description-medium": "Exclusive with [path prefix] Regular expression of path match (e.g. The value .* will match on all paths).",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "byteLength": {
                "max": 256,
                "min": 1
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "path",
              "prefix"
            ]
          }
        },
        "x-f5xc-description-short": "Path match of the URI can be either be, Prefix match or exact match or regular expression match.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ioschemaPathMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ioschemaPortMatcherType": {
        "type": "object",
        "description": "Port match of the request can be a range or a specific port.",
        "title": "PortMatcherType",
        "x-displayname": "Port to Match.",
        "x-ves-displayorder": "3",
        "x-ves-oneof-field-port_match": "[\"no_port_match\",\"port\",\"port_ranges\"]",
        "x-ves-proto-message": "ves.io.schema.PortMatcherType",
        "properties": {
          "no_port_match": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port",
              "port_ranges"
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [no_port_match port_ranges]\nExact Port to match.",
            "title": "port",
            "format": "int64",
            "x-displayname": "Port",
            "x-ves-example": "6443",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "6443",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [no_port_match port_ranges] Exact Port to match.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_port_match",
              "port_ranges"
            ]
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [no_port_match port]\nPort range to match.",
            "title": "port_range",
            "minLength": 1,
            "maxLength": 32,
            "x-displayname": "Port range.",
            "x-ves-example": "8080-8191",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "32",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.port_range": "true"
            },
            "x-f5xc-example": "8080-8191",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "32",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.port_range": "true"
            },
            "x-f5xc-description-short": "Exclusive with [no_port_match port] Port range to match.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 32,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_port_match",
              "port"
            ]
          }
        },
        "x-f5xc-description-short": "Port match of the request can be a range or a specific port.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ioschemaPortMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "origin_poolOriginPoolAdvancedOptions__ves_io_schema_views_http_loadbalancer": {
        "type": "object",
        "description": "Configure Advanced OPTIONS for origin pool.",
        "title": "Origin Pool Advanced Options",
        "x-displayname": "Origin Pool Advanced OPTIONS.",
        "x-ves-oneof-field-circuit_breaker_choice": "[\"circuit_breaker\",\"default_circuit_breaker\",\"disable_circuit_breaker\"]",
        "x-ves-oneof-field-http_protocol_type": "[\"auto_http_config\",\"http1_config\",\"http2_options\"]",
        "x-ves-oneof-field-lb_source_ip_persistence_choice": "[\"disable_lb_source_ip_persistence\",\"enable_lb_source_ip_persistence\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-outlier_detection_choice": "[\"disable_outlier_detection\",\"outlier_detection\"]",
        "x-ves-oneof-field-panic_threshold_type": "[\"no_panic_threshold\",\"panic_threshold\"]",
        "x-ves-oneof-field-proxy_protocol_choice": "[\"disable_proxy_protocol\",\"proxy_protocol_v1\",\"proxy_protocol_v2\"]",
        "x-ves-oneof-field-subset_choice": "[\"disable_subsets\",\"enable_subsets\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginPoolAdvancedOptions",
        "properties": {
          "auto_http_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "http1_config",
              "http2_options"
            ]
          },
          "circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterCircuitBreaker"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_circuit_breaker",
              "disable_circuit_breaker"
            ]
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to endpoints in the cluster.\nThis is specified in milliseconds. The default value is 2 seconds.",
            "title": "connection_timeout",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds. The default value is 2 seconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1800000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": 2000
          },
          "default_circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "circuit_breaker",
              "disable_circuit_breaker"
            ]
          },
          "disable_circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "circuit_breaker",
              "default_circuit_breaker"
            ]
          },
          "disable_lb_source_ip_persistence": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-wire-name": "disable_lb_source_ip_persistance",
            "description": "IP address configuration",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_lb_source_ip_persistence"
            ]
          },
          "disable_outlier_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable outlier detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "outlier_detection"
            ]
          },
          "disable_proxy_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable proxy protocol.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "proxy_protocol_v1",
              "proxy_protocol_v2"
            ]
          },
          "disable_subsets": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable subsets.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_subsets"
            ]
          },
          "enable_lb_source_ip_persistence": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-wire-name": "enable_lb_source_ip_persistance",
            "description": "IP address configuration",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_lb_source_ip_persistence"
            ]
          },
          "enable_subsets": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginPoolSubsets"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable subsets.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_subsets"
            ]
          },
          "http1_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaclusterHttp1ProtocolOptions"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http2_options"
            ]
          },
          "http2_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp2ProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http2 options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http1_config"
            ]
          },
          "http_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 5 minutes.",
            "title": "http_idle_timeout",
            "format": "int64",
            "x-displayname": "HTTP Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "default": 0,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": 300000
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\nSets the maximum number of requests allowed per connection to the origin server.\nEnter a value >=1 to define the request limit per connection.",
            "title": "Maximum Requests Per Connection",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_panic_threshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no panic threshold.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "panic_threshold"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "outlier_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterOutlierDetectionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outlier detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_outlier_detection"
            ]
          },
          "panic_threshold": {
            "type": "integer",
            "description": "Exclusive with [no_panic_threshold]\n\nConfigure a threshold (percentage of unhealthy endpoints) below which\nall endpoints will be considered for load balancing ignoring its health status.",
            "title": "Panic threshold",
            "format": "int64",
            "x-displayname": "Panic threshold.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-example": "25",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-description-short": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for...",
            "x-f5xc-description-medium": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for load balancing ignoring its health status.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 100,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_panic_threshold"
            ]
          },
          "proxy_protocol_v1": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v1.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v2"
            ]
          },
          "proxy_protocol_v2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v2.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v1"
            ]
          }
        },
        "x-f5xc-description-short": "Configure Advanced OPTIONS for origin pool.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginPoolAdvancedOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginPoolDefaultSubset": {
        "type": "object",
        "description": "Default Subset definition.",
        "title": "Origin Pool Default Subset",
        "x-displayname": "Origin Pool Default Subset.",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginPoolDefaultSubset",
        "properties": {
          "default_subset": {
            "type": "object",
            "description": "List of key-value pairs that define default subset.\nWhich gets used when route specifies no metadata or no subset matching the metadata exists.",
            "title": "default_subset",
            "x-displayname": "Default Subset for Origin Pool.",
            "x-ves-example": "Key:value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-example": "key:value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "32"
            },
            "x-f5xc-description-short": "List of key-value pairs that define default subset. Which gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-f5xc-description-medium": "List of key-value pairs that define default subset. Which gets used when route specifies no metadata or no subset matching the metadata exists.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginPoolDefaultSubset",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginPoolSubsets": {
        "type": "object",
        "description": "Configure subset OPTIONS for origin pool.",
        "title": "Origin Pool Subset Options",
        "x-displayname": "Origin Pool Subset OPTIONS.",
        "x-ves-oneof-field-fallback_policy_choice": "[\"any_endpoint\",\"default_subset\",\"fail_request\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginPoolSubsets",
        "properties": {
          "any_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_subset",
              "fail_request"
            ]
          },
          "default_subset": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginPoolDefaultSubset"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default subset.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_endpoint",
              "fail_request"
            ]
          },
          "endpoint_subsets": {
            "type": "array",
            "description": "List of subset class. Subsets class is defined using list of keys. Every unique combination of values of these keys form a subset within the class.",
            "title": "Origin Server Subsets Classes",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/clusterEndpointSubsetSelectorType"
            },
            "x-displayname": "Origin Server Subsets Classes.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of subset class. Subsets class is defined using list of keys.",
            "x-f5xc-description-medium": "List of subset class. Subsets class is defined using list of keys. Every unique combination of values of these keys form a subset within the class.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "fail_request": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for fail request.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_endpoint",
              "default_subset"
            ]
          }
        },
        "x-f5xc-description-short": "Configure subset OPTIONS for origin pool.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginPoolSubsets",
          "required_fields": [
            "endpoint_subsets"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"endpoint_subsets\": [\n    {\n      \"keys\": [\n        \"value\"\n      ]\n    }\n  ]\n}",
          "example_yaml": "endpoint_subsets:\n- keys:\n  - value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerCBIPService": {
        "type": "object",
        "description": "Specify origin server with Classic BIG-IP Service (Virtual Server)",
        "title": "OriginServerCBIPService",
        "x-displayname": "Discovered Classic BIG-IP Service Name.",
        "x-ves-displayorder": "1",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerCBIPService",
        "properties": {
          "service_name": {
            "type": "string",
            "description": "Name of the discovered Classic BIG-IP virtual server to be used as origin.",
            "title": "Service Name",
            "x-displayname": "Service Name.",
            "x-ves-example": "Cbip-vs1-dev.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "cbip-vs1-dev",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Name of the discovered Classic BIG-IP virtual server to be used as origin.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specify origin server with Classic BIG-IP Service (Virtual Server).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerCBIPService",
          "required_fields": [
            "service_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"service_name\": \"cbip-vs1-dev\"\n}",
          "example_yaml": "service_name: cbip-vs1-dev"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerConsulService": {
        "type": "object",
        "description": "Specify origin server with HashiCorp Consul service name and site information.",
        "title": "OriginServerConsulService",
        "x-displayname": "Consul Service Name on given Sites.",
        "x-ves-displayorder": "1,2,3",
        "x-ves-oneof-field-network_choice": "[\"inside_network\",\"outside_network\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerConsulService",
        "properties": {
          "inside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "outside_network"
            ]
          },
          "outside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_network"
            ]
          },
          "service_name": {
            "type": "string",
            "description": "Consul service name of this origin server will be listed, including cluster-ID.\nThe format is servicename:cluster-ID.",
            "title": "Service Name",
            "x-displayname": "Service Name.",
            "x-ves-example": "Matching:production.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "matching:production",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Consul service name of this origin server will be listed, including cluster-ID. The format is servicename:cluster-ID.",
            "x-f5xc-description-medium": "Consul service name of this origin server will be listed, including cluster-ID. The format is servicename:cluster-ID.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "site_locator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteLocator"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "snat_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSnatPoolConfiguration"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specify origin server with HashiCorp Consul service name and site information.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerConsulService",
          "required_fields": [
            "service_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"service_name\": \"matching:production\"\n}",
          "example_yaml": "service_name: matching:production"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerCustomEndpoint": {
        "type": "object",
        "description": "Specify origin server with a reference to endpoint object.",
        "title": "OriginServerCustomEndpoint",
        "x-displayname": "Custom Endpoint Object for Origin Server.",
        "x-ves-displayorder": "1",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerCustomEndpoint",
        "properties": {
          "endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-example": "https://api.example.com/v1/users",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "endpoint",
                "field_path": "endpoint",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Specify origin server with a reference to endpoint object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerCustomEndpoint",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerK8SService": {
        "type": "object",
        "description": "Specify origin server with K8s service name and site information.",
        "title": "OriginServerK8SService",
        "x-displayname": "K8s Service Name on given Sites.",
        "x-ves-displayorder": "10,12,2,3",
        "x-ves-oneof-field-network_choice": "[\"inside_network\",\"outside_network\",\"vk8s_networks\"]",
        "x-ves-oneof-field-service_info": "[\"service_name\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerK8SService",
        "properties": {
          "inside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "outside_network",
              "vk8s_networks"
            ]
          },
          "outside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_network",
              "vk8s_networks"
            ]
          },
          "protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolProtocolType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "PROTOCOL_TCP",
                "PROTOCOL_UDP",
                "PROTOCOL_TCP_UDP"
              ],
              "default": "PROTOCOL_TCP",
              "description": "K8s service protocol"
            }
          },
          "service_name": {
            "type": "string",
            "description": "Exclusive with []\nK8s service name of the origin server will be listed, including the namespace and cluster-ID.\nFor vK8s services, you need to enter a string with the format servicename.namespace:example-namespace\"frontend\",\nnamespace is \"speedtest\" and cluster-ID is \"prod\", then you will enter \"frontend.speedtest:prod\".\nBoth namespace and cluster-ID are optional.",
            "title": "Service Name",
            "x-displayname": "Service Name.",
            "x-ves-example": "matching.default:production.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ves_service_namespace_name": "true"
            },
            "x-f5xc-example": "matching.default:production",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ves_service_namespace_name": "true"
            },
            "x-f5xc-description-short": "Exclusive with [] K8s service name of the origin server will be listed, including the namespace and cluster-ID.",
            "x-f5xc-description-medium": "Exclusive with [] K8s service name of the origin server will be listed, including the namespace and cluster-ID. For vK8s services, you need to enter a string with the format servicename.namespace:example-namespace\"frontend\", namespace is \"speedtest\" and cluster-ID is \"prod\", then you will enter...",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site_locator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteLocator"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "snat_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSnatPoolConfiguration"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "vk8s_networks": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for vk8s networks.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_network",
              "outside_network"
            ]
          }
        },
        "x-f5xc-description-short": "Specify origin server with K8s service name and site information.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerK8SService",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerPrivateIP": {
        "type": "object",
        "description": "Specify origin server with private or public IP address and site information.",
        "title": "OriginServerPrivateIP",
        "x-displayname": "IP address on given Sites.",
        "x-ves-displayorder": "10,2,3",
        "x-ves-oneof-field-network_choice": "[\"inside_network\",\"outside_network\",\"segment\"]",
        "x-ves-oneof-field-private_ip_choice": "[\"ip\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerPrivateIP",
        "properties": {
          "inside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "outside_network",
              "segment"
            ]
          },
          "ip": {
            "type": "string",
            "description": "Exclusive with []\nPrivate IPv4 address.",
            "title": "IP",
            "x-displayname": "IP",
            "x-ves-example": "192.0.2.132.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-example": "192.0.2.132",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "ipv4",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "outside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_network",
              "segment"
            ]
          },
          "segment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_network",
              "outside_network"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "segment",
                "field_path": "segment",
                "gated_by": {
                  "choice": "network_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "site_locator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteLocator"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "snat_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSnatPoolConfiguration"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specify origin server with private or public IP address and site information.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerPrivateIP",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerPrivateName": {
        "type": "object",
        "description": "Specify origin server with private or public DNS name and site information.",
        "title": "OriginServerPrivateName",
        "x-displayname": "DNS Name on given Sites.",
        "x-ves-displayorder": "1,6,2,3",
        "x-ves-oneof-field-network_choice": "[\"inside_network\",\"outside_network\",\"segment\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerPrivateName",
        "properties": {
          "dns_name": {
            "type": "string",
            "description": "DNS Name",
            "title": "DNS name",
            "x-displayname": "DNS Name",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "network",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9.-]",
                "description": "Dot-separated DNS labels"
              },
              "format": "fqdn",
              "formatDescription": "RFC 1123 FQDN: lowercase, dot-separated labels, max 253 chars total",
              "validation": {
                "rfc": "RFC 1123"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.95,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
            "minLength": 1
          },
          "inside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "outside_network",
              "segment"
            ]
          },
          "outside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outside network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_network",
              "segment"
            ]
          },
          "refresh_interval": {
            "type": "integer",
            "description": "Interval for DNS refresh in seconds.\nMax value is 7 days as per https://datatracker.ietf.org/doc/HTML/rfc8767.",
            "title": "refresh_interval",
            "format": "int64",
            "x-displayname": "DNS Refresh Interval.",
            "x-ves-example": "20",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-604800"
            },
            "x-f5xc-example": "20",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-604800"
            },
            "x-f5xc-description-short": "Interval for DNS refresh in seconds. Max value is 7 days as per https://datatracker.ietf.org/doc/HTML/rfc8767.",
            "x-f5xc-description-medium": "Interval for DNS refresh in seconds. Max value is 7 days as per https://datatracker.ietf.org/doc/HTML/rfc8767.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 604800,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "segment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_network",
              "outside_network"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "segment",
                "field_path": "segment",
                "gated_by": {
                  "choice": "network_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "site_locator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteLocator"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "snat_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSnatPoolConfiguration"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specify origin server with private or public DNS name and site information.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerPrivateName",
          "required_fields": [
            "dns_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"dns_name\": \"value\"\n}",
          "example_yaml": "dns_name: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerPublicIP": {
        "type": "object",
        "description": "Specify origin server with public IP address.",
        "title": "OriginServerPublicIP",
        "x-displayname": "Public IP",
        "x-ves-displayorder": "2",
        "x-ves-oneof-field-public_ip_choice": "[\"ip\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerPublicIP",
        "properties": {
          "ip": {
            "type": "string",
            "description": "Exclusive with []\nPublic IPv4 address.",
            "title": "IP",
            "x-displayname": "Public IPv4.",
            "x-ves-example": "192.0.2.132.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-example": "192.0.2.132",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "ipv4",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specify origin server with public IP address.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerPublicIP",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerPublicName": {
        "type": "object",
        "description": "Specify origin server with public DNS name.",
        "title": "OriginServerPublicName",
        "x-displayname": "Public DNS Name.",
        "x-ves-displayorder": "1,2",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerPublicName",
        "properties": {
          "dns_name": {
            "type": "string",
            "description": "DNS Name",
            "title": "DNS name",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "DNS Name",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9.-]",
                "description": "Dot-separated DNS labels"
              },
              "format": "hostname",
              "formatDescription": "RFC 1123 FQDN: lowercase, dot-separated labels, max 253 chars total",
              "validation": {
                "rfc": "RFC 1123"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$"
          },
          "refresh_interval": {
            "type": "integer",
            "description": "Interval for DNS refresh in seconds.\nMax value is 7 days as per https://datatracker.ietf.org/doc/HTML/rfc8767.",
            "title": "refresh_interval",
            "format": "int64",
            "x-displayname": "DNS Refresh Interval.",
            "x-ves-example": "20",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-604800"
            },
            "x-f5xc-example": "20",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-604800"
            },
            "x-f5xc-description-short": "Interval for DNS refresh in seconds. Max value is 7 days as per https://datatracker.ietf.org/doc/HTML/rfc8767.",
            "x-f5xc-description-medium": "Interval for DNS refresh in seconds. Max value is 7 days as per https://datatracker.ietf.org/doc/HTML/rfc8767.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 604800,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specify origin server with public DNS name.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerPublicName",
          "required_fields": [
            "dns_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"dns_name\": \"value\"\n}",
          "example_yaml": "dns_name: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerType": {
        "type": "object",
        "description": "Various OPTIONS to specify origin server.",
        "title": "OriginServerType",
        "x-displayname": "Origin Server.",
        "x-ves-oneof-field-choice": "[\"cbip_service\",\"consul_service\",\"custom_endpoint_object\",\"k8s_service\",\"private_ip\",\"private_name\",\"public_ip\",\"public_name\",\"vn_private_ip\",\"vn_private_name\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerType",
        "properties": {
          "cbip_service": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerCBIPService"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "consul_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_ip",
              "private_name",
              "public_ip",
              "public_name",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "consul_service": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerConsulService"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for consul service.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_ip",
              "private_name",
              "public_ip",
              "public_name",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "custom_endpoint_object": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerCustomEndpoint"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "k8s_service",
              "private_ip",
              "private_name",
              "public_ip",
              "public_name",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "k8s_service": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerK8SService"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for k8s service.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "custom_endpoint_object",
              "private_ip",
              "private_name",
              "public_ip",
              "public_name",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "labels": {
            "type": "object",
            "description": "Add Labels for this origin server, these labels can be used to form subset.",
            "title": "Origin Server Labels",
            "x-displayname": "Origin Server Labels.",
            "x-ves-example": "Value",
            "additionalProperties": {
              "type": "string"
            },
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Add Labels for this origin server, these labels can be used to form subset.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "private_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerPrivateIP"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_name",
              "public_ip",
              "public_name",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "private_name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerPrivateName"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_ip",
              "public_ip",
              "public_name",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "public_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerPublicIP"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_ip",
              "private_name",
              "public_name",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "public_name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerPublicName"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_ip",
              "private_name",
              "public_ip",
              "vn_private_ip",
              "vn_private_name"
            ]
          },
          "vn_private_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerVirtualNetworkIP"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_ip",
              "private_name",
              "public_ip",
              "public_name",
              "vn_private_name"
            ]
          },
          "vn_private_name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginServerVirtualNetworkName"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cbip_service",
              "consul_service",
              "custom_endpoint_object",
              "k8s_service",
              "private_ip",
              "private_name",
              "public_ip",
              "public_name",
              "vn_private_ip"
            ]
          }
        },
        "x-f5xc-description-short": "Various OPTIONS to specify origin server.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerVirtualNetworkIP": {
        "type": "object",
        "description": "Specify origin server with IP on Virtual Network.",
        "title": "OriginServerVirtualNetworkIP",
        "x-displayname": "IP address Virtual Network.",
        "x-ves-displayorder": "10,2",
        "x-ves-oneof-field-virtual_network_ip_choice": "[\"ip\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerVirtualNetworkIP",
        "properties": {
          "ip": {
            "type": "string",
            "description": "Exclusive with []\nIPv4 address.",
            "title": "IPV4",
            "x-displayname": "IPv4",
            "x-ves-example": "192.0.2.242.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-example": "192.0.2.242",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "ipv4",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for virtual network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "virtual_network",
                "field_path": "virtual_network",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Specify origin server with IP on Virtual Network.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerVirtualNetworkIP",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginServerVirtualNetworkName": {
        "type": "object",
        "description": "Specify origin server with DNS name on Virtual Network.",
        "title": "OriginServerVirtualNetworkName",
        "x-displayname": "DNS Name on Virtual Network.",
        "x-ves-displayorder": "1,2",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginServerVirtualNetworkName",
        "properties": {
          "dns_name": {
            "type": "string",
            "description": "DNS Name",
            "title": "DNS name",
            "x-displayname": "DNS Name",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "network",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9.-]",
                "description": "Dot-separated DNS labels"
              },
              "format": "fqdn",
              "formatDescription": "RFC 1123 FQDN: lowercase, dot-separated labels, max 253 chars total",
              "validation": {
                "rfc": "RFC 1123"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.95,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "pattern": "^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\\.)*[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$",
            "minLength": 1
          },
          "private_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for private network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "virtual_network",
                "field_path": "private_network",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Specify origin server with DNS name on Virtual Network.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginServerVirtualNetworkName",
          "required_fields": [
            "dns_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"dns_name\": \"value\"\n}",
          "example_yaml": "dns_name: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolProtocolType": {
        "type": "string",
        "description": "Type of protocol\n\n- PROTOCOL_TCP: TCP\n\n- PROTOCOL_UDP: UDP.",
        "title": "Protocol Type",
        "enum": [
          "PROTOCOL_TCP",
          "PROTOCOL_UDP"
        ],
        "default": "PROTOCOL_TCP",
        "x-displayname": "Protocol Type.",
        "x-ves-proto-enum": "ves.io.schema.views.origin_pool.ProtocolType",
        "x-f5xc-description-short": "Type of protocol - PROTOCOL_TCP: TCP - PROTOCOL_UDP: UDP.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolProtocolType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"PROTOCOL_TCP\"",
          "example_yaml": "PROTOCOL_TCP\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolTlsCertificatesType": {
        "type": "object",
        "description": "MTLS Client Certificate.",
        "title": "TlsCertificatesType",
        "x-displayname": "MTLS Certificate.",
        "x-ves-displayorder": "1",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.TlsCertificatesType",
        "properties": {
          "tls_certificates": {
            "type": "array",
            "description": "MTLS Client Certificate.",
            "title": "mTLS certificate",
            "minItems": 1,
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/schemaTlsCertificateType"
            },
            "x-displayname": "MTLS Client Certificate.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "1",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "1",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolTlsCertificatesType",
          "required_fields": [
            "tls_certificates"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"tls_certificates\": [\n    {\n      \"certificate_url\": \"value\"\n    }\n  ]\n}",
          "example_yaml": "tls_certificates:\n- certificate_url: value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolUpstreamTlsParameters": {
        "type": "object",
        "description": "Upstream TLS Parameters.",
        "title": "UpstreamTlsParameters",
        "x-displayname": "TLS Parameters for Origin Servers.",
        "x-ves-displayorder": "10,2,8,9,15",
        "x-ves-oneof-field-max_session_keys_type": "[\"default_session_key_caching\",\"disable_session_key_caching\",\"max_session_keys\"]",
        "x-ves-oneof-field-mtls_choice": "[\"no_mtls\",\"use_mtls\",\"use_mtls_obj\"]",
        "x-ves-oneof-field-server_validation_choice": "[\"skip_server_verification\",\"use_server_verification\",\"volterra_trusted_ca\"]",
        "x-ves-oneof-field-sni_choice": "[\"disable_sni\",\"sni\",\"use_host_header_as_sni\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.UpstreamTlsParameters",
        "properties": {
          "default_session_key_caching": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default session key caching.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "disable_session_key_caching",
              "max_session_keys"
            ]
          },
          "disable_session_key_caching": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable session key caching.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_session_key_caching",
              "max_session_keys"
            ]
          },
          "disable_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable sni.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "sni",
              "use_host_header_as_sni"
            ]
          },
          "max_session_keys": {
            "type": "integer",
            "description": "Exclusive with [default_session_key_caching disable_session_key_caching]\n\nNumber of session keys that are cached.",
            "title": "Max Session Keys Cached",
            "format": "int64",
            "x-displayname": "Max Session Keys Cached.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2",
              "ves.io.schema.rules.uint32.lte": "64"
            },
            "x-f5xc-example": "25",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2",
              "ves.io.schema.rules.uint32.lte": "64"
            },
            "x-f5xc-description-short": "Exclusive with [default_session_key_caching disable_session_key_caching] Number of session keys that are cached.",
            "x-f5xc-description-medium": "Exclusive with [default_session_key_caching disable_session_key_caching] Number of session keys that are cached.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 2,
              "maximum": 64,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_session_key_caching",
              "disable_session_key_caching"
            ]
          },
          "no_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "use_mtls",
              "use_mtls_obj"
            ]
          },
          "skip_server_verification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_server_verification",
              "volterra_trusted_ca"
            ]
          },
          "sni": {
            "type": "string",
            "description": "Exclusive with [disable_sni use_host_header_as_sni]\nSNI value to be used.",
            "title": "sni",
            "maxLength": 256,
            "x-displayname": "SNI Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [disable_sni use_host_header_as_sni] SNI value to be used.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_sni",
              "use_host_header_as_sni"
            ]
          },
          "tls_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsTlsConfig"
              }
            ],
            "x-f5xc-constraints": {
              "constraintType": "object",
              "category": "tls",
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "tls",
                "note": "Required when use_tls is selected — API returns 400 if nil",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_host_header_as_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "disable_sni",
              "sni"
            ]
          },
          "use_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolTlsCertificatesType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_mtls",
              "use_mtls_obj"
            ]
          },
          "use_mtls_obj": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for use mtls obj.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_mtls",
              "use_mtls"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "use_mtls_obj",
                "gated_by": {
                  "choice": "mtls_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "use_server_verification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolUpstreamTlsValidationContext"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for use server verification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "skip_server_verification",
              "volterra_trusted_ca"
            ]
          },
          "volterra_trusted_ca": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for volterra trusted ca.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "skip_server_verification",
              "use_server_verification"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolUpstreamTlsParameters",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolUpstreamTlsValidationContext": {
        "type": "object",
        "description": "Upstream TLS Validation Context.",
        "title": "UpstreamTlsValidationContext",
        "x-displayname": "TLS Validation Context for Origin Servers.",
        "x-ves-oneof-field-trusted_ca_choice": "[\"trusted_ca\",\"trusted_ca_url\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.UpstreamTlsValidationContext",
        "properties": {
          "trusted_ca": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca_url"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "certificate",
                "field_path": "trusted_ca",
                "gated_by": {
                  "choice": "trusted_ca_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "trusted_ca_url": {
            "type": "string",
            "description": "Exclusive with [trusted_ca]\nUpload a Root CA Certificate specifically for this Origin Pool for verification of server's certificate.",
            "title": "trusted_ca_url",
            "minLength": 1,
            "maxLength": 131072,
            "x-displayname": "Inline Root CA Certificate (legacy)",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-f5xc-description-short": "Exclusive with [trusted_ca] Upload a Root CA Certificate specifically for this Origin Pool for verification of server's certificate.",
            "x-f5xc-description-medium": "Exclusive with [trusted_ca] Upload a Root CA Certificate specifically for this Origin Pool for verification of server's certificate.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 131072,
              "byteLength": {
                "max": 131072,
                "min": 1
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolUpstreamTlsValidationContext",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "policyArgMatcherType": {
        "type": "object",
        "description": "A argument matcher specifies the name of a single argument in the body and the criteria to match it.\nA argument matcher can check for one of the following:\n* Presence or absence of the argument\n* At least one of the values for the argument in the request satisfies the MatcherType item.",
        "title": "ArgMatcherType",
        "x-displayname": "Argument Matcher.",
        "x-ves-displayorder": "1,6,4",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.ArgMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert Match of the expression defined.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "A case-sensitive JSON path in the HTTP request body.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "Argument Name.",
            "x-ves-example": "Name",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.json_path": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "name",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.json_path": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Case-sensitive JSON path in the HTTP request body.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Argument matcher specifies the name of a single argument in the body and the criteria to match it.",
        "x-f5xc-description-medium": "Argument matcher specifies the name of a single argument in the body and the criteria to match it. A argument matcher can check for one of the following: * Presence or absence of the argument * At least one of the values for the argument in the request satisfies the MatcherType item.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyArgMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"name\"\n}",
          "example_yaml": "name: name"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyClientMatcher__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "Client conditions for matching a rule.",
        "title": "Client Matcher",
        "x-displayname": "Client Matcher.",
        "x-ves-oneof-field-client_choice": "[\"any_client\",\"client_selector\",\"ip_threat_category_list\"]",
        "x-ves-oneof-field-ip_asn_choice": "[\"any_ip\",\"asn_list\",\"asn_matcher\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-proto-message": "ves.io.schema.policy.ClientMatcher",
        "properties": {
          "any_client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher",
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_matcher",
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_list",
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "ip_threat_category_list"
            ]
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_list",
              "asn_matcher",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "asn_list",
              "asn_matcher",
              "ip_matcher"
            ]
          },
          "ip_threat_category_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyIPThreatCategoryListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_selector"
            ]
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyClientMatcher",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyCookieMatcherType__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "A cookie matcher specifies the name of a single cookie and the criteria to match it. The input has a list of values for each\ncookie in the request.\nA cookie matcher can check for one of the following:\n* Presence or absence of the cookie\n* At least one of the values for the cookie in the request satisfies the MatcherType item.",
        "title": "CookieMatcherType",
        "x-displayname": "Cookie Matcher.",
        "x-ves-displayorder": "1,6,4",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.CookieMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert Match of the expression defined.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "A case-sensitive cookie name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "Cookie Name.",
            "x-ves-example": "Session",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Session",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Cookie matcher specifies the name of a single cookie and the criteria to match it.",
        "x-f5xc-description-medium": "Cookie matcher specifies the name of a single cookie and the criteria to match it. The input has a list of values for each cookie in the request. A cookie matcher can check for one of the following: * Presence or absence of the cookie * At least one of the values for the cookie in the request...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyCookieMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"Session\"\n}",
          "example_yaml": "name: Session"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyGraphQLRule": {
        "type": "object",
        "description": "This section defines various configuration OPTIONS for GraphQL inspection.",
        "title": "GraphQL Rule",
        "x-displayname": "GraphQL",
        "x-ves-displayorder": "1,2,6,8,7",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"exact_value\",\"suffix_value\"]",
        "x-ves-oneof-field-method_choice": "[\"method_get\",\"method_post\"]",
        "x-ves-proto-message": "ves.io.schema.policy.GraphQLRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact_value",
              "suffix_value"
            ]
          },
          "exact_path": {
            "type": "string",
            "description": "Specifies the exact path to GraphQL endpoint. Default value is /graphql.",
            "title": "Path",
            "maxLength": 256,
            "x-displayname": "Path",
            "x-ves-example": "/graphql",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/graphql",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Specifies the exact path to GraphQL endpoint. Default value is /graphql.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "exact_value": {
            "type": "string",
            "description": "Exclusive with [any_domain suffix_value]\nExact domain name.",
            "title": "exact value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Exact Value.",
            "x-ves-example": "abc.zyz.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "abc.zyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain suffix_value] Exact domain name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "suffix_value"
            ]
          },
          "graphql_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyGraphQLSettingsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for graphql settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method_get": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "method_post"
            ]
          },
          "method_post": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for method post.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "method_get"
            ]
          },
          "suffix_value": {
            "type": "string",
            "description": "Exclusive with [any_domain exact_value]\nSuffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"",
            "title": "suffix value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Suffix Value.",
            "x-ves-example": "xyz.com",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "xyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-description-medium": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "exact_value"
            ]
          }
        },
        "x-f5xc-description-short": "Section defines various configuration OPTIONS for GraphQL inspection.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyGraphQLRule",
          "required_fields": [
            "exact_path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"exact_path\": \"/graphql\"\n}",
          "example_yaml": "exact_path: /graphql"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyGraphQLSettingsType": {
        "type": "object",
        "description": "GraphQL configuration.",
        "title": "GraphQL Settings",
        "x-displayname": "GraphQL Settings.",
        "x-ves-oneof-field-allow_introspection_queries_choice": "[\"disable_introspection\",\"enable_introspection\"]",
        "x-ves-proto-message": "ves.io.schema.policy.GraphQLSettingsType",
        "properties": {
          "disable_introspection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_introspection"
            ]
          },
          "enable_introspection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_introspection"
            ]
          },
          "max_batched_queries": {
            "type": "integer",
            "description": "Specify maximum number of queries in a single batched request.",
            "title": "Max Batched Queries",
            "format": "int64",
            "x-displayname": "Maximum Batched Queries.",
            "x-ves-example": "10",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "20"
            },
            "x-f5xc-example": "10",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "20"
            },
            "x-f5xc-description-short": "Specify maximum number of queries in a single batched request.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 20,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "max_depth": {
            "type": "integer",
            "description": "Specify maximum depth for the GraphQL query.",
            "title": "Max Depth",
            "format": "int64",
            "x-displayname": "Maximum Structure Depth.",
            "x-ves-example": "10",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "20"
            },
            "x-f5xc-example": "10",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "20"
            },
            "x-f5xc-description-short": "Specify maximum depth for the GraphQL query.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 20,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "max_total_length": {
            "type": "integer",
            "description": "Specify maximum length in bytes for the GraphQL query.",
            "title": "Max Total Length",
            "format": "int64",
            "x-displayname": "Maximum Total Length.",
            "x-ves-example": "5000",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "16386"
            },
            "x-f5xc-example": "5000",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "16386"
            },
            "x-f5xc-description-short": "Specify maximum length in bytes for the GraphQL query.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 16386,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyGraphQLSettingsType",
          "required_fields": [
            "max_batched_queries",
            "max_depth",
            "max_total_length"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"max_batched_queries\": 0,\n  \"max_depth\": 0,\n  \"max_total_length\": 0\n}",
          "example_yaml": "max_batched_queries: 0\nmax_depth: 0\nmax_total_length: 0"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyHeaderMatcherTypeBasic": {
        "type": "object",
        "description": "A header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each\nheader name in the original HTTP request.\nA header matcher can check for one of the following:\n* Presence or absence of the header in the input\n* At least one of the values for the header in the input satisfies the MatcherType item.",
        "title": "HeaderMatcherTypeBasic",
        "x-displayname": "Header Matcher.",
        "x-ves-displayorder": "1,6",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.HeaderMatcherTypeBasic",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "A case-insensitive HTTP header name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "Header Name.",
            "x-ves-example": "Accept-Encoding.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Accept-Encoding",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Header matcher specifies the name of a single HTTP header and the criteria for the input request to match it.",
        "x-f5xc-description-medium": "Header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each header name in the original HTTP request. A header matcher can check for one of the following: * Presence or absence of the header in the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyHeaderMatcherTypeBasic",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"Accept-Encoding\"\n}",
          "example_yaml": "name: Accept-Encoding"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyJWTClaimMatcherType__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "A JWT claim matcher specifies the name of a single JWT claim and the criteria for the input request to match it.\nThe input has a list of actual values for each JWT claim name in the JWT payload.\nA JWT claim matcher can check for one of the following:\n* Presence or absence of the JWT Claim in the input\n* At least one of the values for the JWT Claim in the input satisfies the MatcherType item.",
        "title": "JWTClaimMatcherType",
        "x-displayname": "JWT Claim Matcher.",
        "x-ves-displayorder": "1,2,6",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.JWTClaimMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "JWT claim name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "JWT Claim Name.",
            "x-ves-example": "User_id",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "user_id",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "JWT claim matcher specifies the name of a single JWT claim and the criteria for the input request to match it.",
        "x-f5xc-description-medium": "JWT claim matcher specifies the name of a single JWT claim and the criteria for the input request to match it. The input has a list of actual values for each JWT claim name in the JWT payload. A JWT claim matcher can check for one of the following: * Presence or absence of the JWT Claim in the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyJWTClaimMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"user_id\"\n}",
          "example_yaml": "name: user_id"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyMatcherTypeBasic": {
        "type": "object",
        "description": "A matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied. The set\nof supported match criteria includes a list of exact values and a list of regular expressions.",
        "title": "MatcherTypeBasic",
        "x-displayname": "Matcher",
        "x-ves-proto-message": "ves.io.schema.policy.MatcherTypeBasic",
        "properties": {
          "exact_values": {
            "type": "array",
            "description": "A list of exact values to match the input against.",
            "title": "exact values",
            "maxItems": 64,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Exact Values.",
            "x-ves-example": "['new york', 'london', 'sydney', 'tokyo', 'cairo']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['new york', 'london', 'sydney', 'tokyo', 'cairo']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact values to match the input against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "regex_values": {
            "type": "array",
            "description": "A list of regular expressions to match the input against.",
            "title": "regex values",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Regex Values.",
            "x-ves-example": "['^new .*$', 'san f.*', '.* del .*']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['^new .*$', 'san f.*', '.* del .*']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of regular expressions to match the input against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied.",
        "x-f5xc-description-medium": "Matcher specifies multiple criteria for matching an input string. The match is considered successful if any of the criteria are satisfied. The set of supported match criteria includes a list of exact values and a list of regular expressions.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyMatcherTypeBasic",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyOriginServerSubsetRule": {
        "type": "object",
        "description": "\"Origin Server Subset rule specifies a simple set of match conditions to be matched to select a list of origin server key/val pairs.",
        "title": "OriginServerSubsetRule",
        "x-displayname": "Origin Server Subset Rule.",
        "x-ves-displayorder": "1,9,4,25,5,30,33,3",
        "x-ves-oneof-field-asn_choice": "[\"any_asn\",\"asn_list\",\"asn_matcher\"]",
        "x-ves-oneof-field-ip_choice": "[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-oneof-field-selector_choice": "[\"client_selector\",\"none\"]",
        "x-ves-proto-message": "ves.io.schema.policy.OriginServerSubsetRule",
        "properties": {
          "any_asn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_matcher"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_list"
            ]
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "none"
            ]
          },
          "country_codes": {
            "type": "array",
            "description": "List of Country Codes.",
            "title": "country codes",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyCountryCode"
            },
            "x-displayname": "Country Codes List.",
            "x-ves-example": "IN, DE",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "IN, DE",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_matcher"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_selector"
            ]
          },
          "origin_server_subsets_action": {
            "type": "object",
            "description": "Add labels to select one or more origin servers.\nNote: The pre-requisite settings to be configured in the origin pool are:\n1. Add labels to origin servers\n2. Enable subset load balancing in the Origin Server Subsets section and configure keys in origin server subsets classes.",
            "title": "Origin Server Labels Action",
            "x-displayname": "Action",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "128",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "128",
              "ves.io.schema.rules.map.values.string.min_len": "1",
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "128",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "128",
              "ves.io.schema.rules.map.values.string.min_len": "1",
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Add labels to select one or more origin servers.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "re_name_list": {
            "type": "array",
            "description": "List of RE names for match.",
            "title": "RE Name list",
            "maxItems": 32,
            "items": {
              "type": "string",
              "maxLength": 64
            },
            "x-displayname": "RE Names",
            "x-ves-example": "VES-I/O-re01.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true",
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-f5xc-example": "ves-io-re01",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true",
              "ves.io.schema.rules.string.max_len": "64"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "\"Origin Server Subset rule specifies a simple set of match conditions to be matched to select a list of origin server key/val pairs.",
        "x-f5xc-description-medium": "\"Origin Server Subset rule specifies a simple set of match conditions to be matched to select a list of origin server key/val pairs.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyOriginServerSubsetRule",
          "required_fields": [
            "origin_server_subsets_action"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"origin_server_subsets_action\": {}\n}",
          "example_yaml": "origin_server_subsets_action: {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyRequestMatcher__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "Request conditions for matching a rule.",
        "title": "Request Matcher",
        "x-displayname": "Request Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.RequestMatcher",
        "properties": {
          "cookie_matchers": {
            "type": "array",
            "description": "A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.",
            "title": "cookie matchers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyCookieMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Cookie Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all cookies that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "jwt_claims": {
            "type": "array",
            "description": "A list of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType\ninstances. The actual JWT claims values are extracted from the JWT payload as a list of strings.\nNote that all specified JWT claim predicates must evaluate to true.\nNote that this feature only works on LBs with JWT Validation feature enabled.",
            "title": "JWT claims",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyJWTClaimMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "JWT Claims.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for various JWT claims that need to match.",
            "x-f5xc-description-medium": "List of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType instances. The actual JWT claims values are extracted from the JWT payload as a list of strings.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "title": "query params",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Query Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyRequestMatcher",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyShapeBotBlockMitigationActionType": {
        "type": "object",
        "description": "Block request and respond with custom content.",
        "title": "ShapeBotBlockMitigationActionType",
        "x-displayname": "Block bot mitigation.",
        "x-ves-proto-message": "ves.io.schema.policy.ShapeBotBlockMitigationActionType",
        "properties": {
          "body": {
            "type": "string",
            "description": "Custom body message is of type uri_ref. Currently supported URL schemes is string:///.\nFor string:/// scheme, message needs to be encoded in Base64 format.\nYou can specify this message as base64 encoded plain text message e.g. \"Your request was blocked\"\nor it can be HTML paragraph or a body string encoded as base64 string\nE.g. \"<p> Your request was blocked </p>\". Base64 encoded string for this HTML is \"LzxwPiBZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgPC9wPg==\"",
            "title": "body",
            "maxLength": 4096,
            "x-displayname": "Body",
            "x-ves-example": "String://LzxwPiBZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgPC9wPg==.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "4096",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-example": "string://LzxwPiBZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgPC9wPg==",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "4096",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Custom body message is of type uri_ref. Currently supported URL schemes is string:///.",
            "x-f5xc-description-medium": "Custom body message is of type uri_ref. Currently supported URL schemes is string:///. For string:/// scheme, message needs to be encoded in Base64 format.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 4096,
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpStatusCode"
              }
            ],
            "x-f5xc-example": "active",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Block request and respond with custom content.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyShapeBotBlockMitigationActionType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyShapeBotFlagMitigationActionChoiceType": {
        "type": "object",
        "description": "Flag mitigation action.",
        "title": "ShapeBotFlagMitigationActionChoiceType",
        "x-displayname": "Select Flag Bot Mitigation Action.",
        "x-ves-oneof-field-send_headers_choice": "[\"append_headers\",\"no_headers\"]",
        "x-ves-proto-message": "ves.io.schema.policy.ShapeBotFlagMitigationActionChoiceType",
        "properties": {
          "append_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyShapeBotFlagMitigationActionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for append headers.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_headers"
            ]
          },
          "no_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_headers"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyShapeBotFlagMitigationActionChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyShapeBotFlagMitigationActionType": {
        "type": "object",
        "description": "Append flag mitigation headers to forwarded request.",
        "title": "ShapeBotFlagMitigationActionType",
        "x-displayname": "Append Flag Mitigation Headers.",
        "x-ves-proto-message": "ves.io.schema.policy.ShapeBotFlagMitigationActionType",
        "properties": {
          "auto_type_header_name": {
            "type": "string",
            "description": "A case-insensitive HTTP header name.",
            "title": "auto_type_header_name",
            "maxLength": 256,
            "x-displayname": "Automation Type Header Name.",
            "x-ves-example": "Bot-Automation-Type.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Bot-Automation-Type",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "inference_header_name": {
            "type": "string",
            "description": "A case-insensitive HTTP header name.",
            "title": "inference_header_name",
            "maxLength": 256,
            "x-displayname": "Inference Header Name.",
            "x-ves-example": "Bot-Inference.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Bot-Inference",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Append flag mitigation headers to forwarded request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyShapeBotFlagMitigationActionType",
          "required_fields": [
            "auto_type_header_name",
            "inference_header_name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"auto_type_header_name\": \"Bot-Automation-Type\",\n  \"inference_header_name\": \"Bot-Inference\"\n}",
          "example_yaml": "auto_type_header_name: Bot-Automation-Type\ninference_header_name: Bot-Inference"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyShapeBotMitigationAction": {
        "type": "object",
        "description": "Modify Bot Defense behavior for a matching request.",
        "title": "ShapeBotMitigationAction",
        "x-displayname": "Bot Mitigation Action.",
        "x-ves-oneof-field-action_type": "[\"block\",\"flag\",\"redirect\"]",
        "x-ves-proto-message": "ves.io.schema.policy.ShapeBotMitigationAction",
        "properties": {
          "block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyShapeBotBlockMitigationActionType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "flag",
              "redirect"
            ]
          },
          "flag": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyShapeBotFlagMitigationActionChoiceType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "block",
              "redirect"
            ]
          },
          "redirect": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyShapeBotRedirectMitigationActionType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "block",
              "flag"
            ]
          }
        },
        "x-f5xc-description-short": "Modify Bot Defense behavior for a matching request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyShapeBotMitigationAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyShapeBotRedirectMitigationActionType": {
        "type": "object",
        "description": "Redirect request to a custom URI.",
        "title": "ShapeBotRedirectMitigationTypeAction",
        "x-displayname": "Redirect bot mitigation.",
        "x-ves-proto-message": "ves.io.schema.policy.ShapeBotRedirectMitigationActionType",
        "properties": {
          "uri": {
            "type": "string",
            "description": "URI location for redirect may be relative or absolute.",
            "title": "URI",
            "x-displayname": "URI",
            "x-ves-example": "Enter URI",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.url_or_uri_ref": "true"
            },
            "x-f5xc-example": "Enter URI",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.url_or_uri_ref": "true"
            },
            "x-f5xc-description-short": "URI location for redirect may be relative or absolute.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyShapeBotRedirectMitigationActionType",
          "required_fields": [
            "uri"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"uri\": \"Enter URI\"\n}",
          "example_yaml": "uri: Enter URI"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policySimpleDataGuardRule": {
        "type": "object",
        "description": "Simple Data Guard rule specifies a simple set of match conditions to enable data guard protection.",
        "title": "SimpleDataGuardRule",
        "x-displayname": "Data Guard Rule Specification (Data Leakage Protection)",
        "x-ves-displayorder": "10,14,3,6",
        "x-ves-oneof-field-action_choice": "[\"apply_data_guard\",\"skip_data_guard\"]",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"exact_value\",\"suffix_value\"]",
        "x-ves-proto-message": "ves.io.schema.policy.SimpleDataGuardRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact_value",
              "suffix_value"
            ]
          },
          "apply_data_guard": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "skip_data_guard"
            ]
          },
          "exact_value": {
            "type": "string",
            "description": "Exclusive with [any_domain suffix_value]\nExact domain name.",
            "title": "exact value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Exact Value.",
            "x-ves-example": "abc.zyz.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "abc.zyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain suffix_value] Exact domain name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "suffix_value"
            ]
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "skip_data_guard": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "apply_data_guard"
            ]
          },
          "suffix_value": {
            "type": "string",
            "description": "Exclusive with [any_domain exact_value]\nSuffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"",
            "title": "suffix value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Suffix Value.",
            "x-ves-example": "xyz.com",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "xyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-description-medium": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "exact_value"
            ]
          }
        },
        "x-f5xc-description-short": "Simple Data Guard rule specifies a simple set of match conditions to enable data guard protection.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policySimpleDataGuardRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policySimpleWafExclusionRule__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections.",
        "title": "SimpleWafExclusionRule",
        "x-displayname": "WAF Exclusion Rule.",
        "x-ves-displayorder": "10,3,16,7,14,9",
        "x-ves-oneof-field-domain_choice": "[\"any_domain\",\"exact_value\",\"suffix_value\"]",
        "x-ves-oneof-field-path_choice": "[\"any_path\",\"path_prefix\",\"path_regex\"]",
        "x-ves-oneof-field-waf_advanced_configuration": "[\"app_firewall_detection_control\",\"waf_skip_processing\"]",
        "x-ves-proto-message": "ves.io.schema.policy.SimpleWafExclusionRule",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact_value",
              "suffix_value"
            ]
          },
          "any_path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "path_prefix",
              "path_regex"
            ]
          },
          "app_firewall_detection_control": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAppFirewallDetectionControl"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall detection control.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "waf_skip_processing"
            ]
          },
          "exact_value": {
            "type": "string",
            "description": "Exclusive with [any_domain suffix_value]\nExact domain name.",
            "title": "exact value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Exact Value.",
            "x-ves-example": "abc.zyz.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "abc.zyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain suffix_value] Exact domain name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "suffix_value"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "title": "expiration timestamp",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "methods": {
            "type": "array",
            "description": "Methods to be matched.",
            "title": "Methods",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaHttpMethod"
            },
            "x-displayname": "Methods",
            "x-ves-example": "GET",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "GET",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path_prefix": {
            "type": "string",
            "description": "Exclusive with [any_path path_regex]\nPath prefix to match (e.g. The value / will match on all paths)",
            "title": "prefix",
            "maxLength": 256,
            "x-displayname": "Prefix",
            "x-ves-example": "/register/.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/register/",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_path path_regex] Path prefix to match (e.g. The value / will match on all paths)",
            "x-f5xc-description-medium": "Exclusive with [any_path path_regex] Path prefix to match (e.g. The value / will match on all paths).",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_path",
              "path_regex"
            ]
          },
          "path_regex": {
            "type": "string",
            "description": "Exclusive with [any_path path_prefix]\nDefine the regex for the path. For example, the regex ^/.*$ will match on all paths.",
            "title": "Path Regex",
            "maxLength": 256,
            "x-displayname": "Path Regex.",
            "x-ves-example": "/blog_id/.*.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-example": "/blog_id/.*",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-description-short": "Exclusive with [any_path path_prefix] Define the regex for the path. For example, the regex ^/.*$ will match on all paths.",
            "x-f5xc-description-medium": "Exclusive with [any_path path_prefix] Define the regex for the path. For example, the regex ^/.*$ will match on all paths.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_path",
              "path_prefix"
            ]
          },
          "suffix_value": {
            "type": "string",
            "description": "Exclusive with [any_domain exact_value]\nSuffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"",
            "title": "suffix value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Suffix Value.",
            "x-ves-example": "xyz.com",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "xyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-description-medium": "Exclusive with [any_domain exact_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_domain",
              "exact_value"
            ]
          },
          "waf_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall_detection_control"
            ]
          }
        },
        "x-f5xc-description-short": "Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections.",
        "x-f5xc-description-medium": "Simple WAF exclusion rule specifies a simple set of match conditions to be matched to skip a list of WAF detections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policySimpleWafExclusionRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterInputHours": {
        "type": "object",
        "description": "Input Duration Hours.",
        "title": "Hours",
        "x-displayname": "Hours",
        "x-ves-proto-message": "ves.io.schema.rate_limiter.InputHours",
        "properties": {
          "duration": {
            "type": "integer",
            "description": "Configuration parameter for duration",
            "title": "Duration",
            "format": "int64",
            "x-displayname": "Duration",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "48"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "48"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 48,
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterInputHours",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterInputMinutes": {
        "type": "object",
        "description": "Input Duration Minutes.",
        "title": "Minutes",
        "x-displayname": "Minutes",
        "x-ves-proto-message": "ves.io.schema.rate_limiter.InputMinutes",
        "properties": {
          "duration": {
            "type": "integer",
            "description": "Configuration parameter for duration",
            "title": "Duration",
            "format": "int64",
            "x-displayname": "Duration",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "60"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "60"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 60,
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterInputMinutes",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterInputSeconds": {
        "type": "object",
        "description": "Input Duration Seconds.",
        "title": "Seconds",
        "x-displayname": "Seconds",
        "x-ves-proto-message": "ves.io.schema.rate_limiter.InputSeconds",
        "properties": {
          "duration": {
            "type": "integer",
            "description": "Configuration parameter for duration",
            "title": "Duration",
            "format": "int64",
            "x-displayname": "Duration",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "300"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "300"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 300,
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterInputSeconds",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterLeakyBucketRateLimiter": {
        "type": "object",
        "description": "Leaky-Bucket is the default rate limiter algorithm for F5.",
        "title": "LeakyBucketRateLimiter",
        "x-displayname": "Leaky Bucket Rate Limiter.",
        "x-ves-proto-message": "ves.io.schema.rate_limiter.LeakyBucketRateLimiter",
        "x-f5xc-description-short": "Leaky-Bucket is the default rate limiter algorithm for F5.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterLeakyBucketRateLimiter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterRateLimitBlockAction": {
        "type": "object",
        "description": "Action where a user is blocked from making further requests after exceeding rate limit threshold.",
        "title": "RateLimitBlockAction",
        "x-displayname": "Rate Limit Block Action.",
        "x-ves-oneof-field-block_duration_choice": "[\"hours\",\"minutes\",\"seconds\"]",
        "x-ves-proto-message": "ves.io.schema.rate_limiter.RateLimitBlockAction",
        "properties": {
          "hours": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterInputHours"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "minutes",
              "seconds"
            ]
          },
          "minutes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterInputMinutes"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hours",
              "seconds"
            ]
          },
          "seconds": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterInputSeconds"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hours",
              "minutes"
            ]
          }
        },
        "x-f5xc-description-short": "Action where a user is blocked from making further requests after exceeding rate limit threshold.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterRateLimitBlockAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterRateLimitValue": {
        "type": "object",
        "description": "A tuple consisting of a rate limit period unit and the total number of allowed requests for that period.",
        "title": "RateLimitValue",
        "x-displayname": "Rate Limit Value.",
        "x-ves-oneof-field-action_choice": "[\"action_block\",\"disabled\"]",
        "x-ves-oneof-field-algorithm": "[\"leaky_bucket\",\"token_bucket\"]",
        "x-ves-proto-message": "ves.io.schema.rate_limiter.RateLimitValue",
        "properties": {
          "action_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterRateLimitBlockAction"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disabled"
            ]
          },
          "burst_multiplier": {
            "type": "integer",
            "description": "The maximum burst of requests to accommodate, expressed as a multiple of the rate.",
            "title": "burst_multiplier",
            "format": "int64",
            "x-displayname": "Burst Multiplier.",
            "x-ves-example": "1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-description-short": "The maximum burst of requests to accommodate, expressed as a multiple of the rate.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 100,
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "True",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "action_block"
            ]
          },
          "leaky_bucket": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterLeakyBucketRateLimiter"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for leaky bucket.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "token_bucket"
            ]
          },
          "period_multiplier": {
            "type": "integer",
            "description": "This setting, combined with Per Period units, provides a duration.",
            "title": "period_multiplier",
            "format": "int64",
            "x-displayname": "Periods",
            "x-ves-example": "1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0"
            },
            "x-f5xc-description-short": "Setting, combined with Per Period units, provides a duration.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true
          },
          "token_bucket": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterTokenBucketRateLimiter"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for token bucket.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "leaky_bucket"
            ]
          },
          "total_number": {
            "type": "integer",
            "description": "The total number of allowed requests per rate-limiting period.",
            "title": "total_number",
            "format": "int64",
            "x-displayname": "Number Of Requests.",
            "x-ves-example": "1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "8192"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gt": "0",
              "ves.io.schema.rules.uint32.lte": "8192"
            },
            "x-f5xc-description-short": "The total number of allowed requests per rate-limiting period.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 8192,
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "unit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiterRateLimitPeriodUnit"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "SECOND",
                "MINUTE",
                "HOUR"
              ],
              "default": "SECOND",
              "description": "Rate limit time unit"
            }
          }
        },
        "x-f5xc-description-short": "Tuple consisting of a rate limit period unit and the total number of allowed requests for that period.",
        "x-f5xc-description-medium": "Tuple consisting of a rate limit period unit and the total number of allowed requests for that period.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterRateLimitValue",
          "required_fields": [
            "total_number"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"total_number\": 0\n}",
          "example_yaml": "total_number: 0"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiterTokenBucketRateLimiter": {
        "type": "object",
        "description": "Token-Bucket is a rate limiter algorithm that is stricter with enforcing limits.",
        "title": "TokenBucketRateLimiter",
        "x-displayname": "Token Bucket Rate Limiter.",
        "x-ves-proto-message": "ves.io.schema.rate_limiter.TokenBucketRateLimiter",
        "x-f5xc-description-short": "Token-Bucket is a rate limiter algorithm that is stricter with enforcing limits.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiterTokenBucketRateLimiter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "users",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiters benefit from centralized management for consistent enforcement"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyPolicyList": {
        "type": "object",
        "description": "List of rate limiter policies to be applied.",
        "title": "Rate Limiter Policy List",
        "x-displayname": "Rate Limiter Policy List.",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.PolicyList",
        "properties": {
          "policies": {
            "type": "array",
            "description": "Ordered list of rate limiter policies.",
            "title": "Rate Limiter Policies",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Rate Limiter Policies.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of rate limiter policies to be applied.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyPolicyList",
          "required_fields": [
            "policies"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"policies\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "policies:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "routeBotDefenseJavascriptInjectionType__ves_io_schema_views_http_loadbalancer": {
        "type": "object",
        "description": "Bot Defense Javascript Injection Configuration for inline bot defense deployments.",
        "title": "BotDefenseJavascriptInjectionType",
        "x-displayname": "Bot Defense Javascript Injection Configuration for inline deployments.",
        "x-ves-proto-message": "ves.io.schema.route.BotDefenseJavascriptInjectionType",
        "properties": {
          "javascript_location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemarouteJavaScriptLocation"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "javascript_tags": {
            "type": "array",
            "description": "Select Add item to configure your javascript tag. If adding both Bot Adv and Fraud, the Bot Javascript should be added first.",
            "title": "javascript_tags",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/routeJavaScriptTag"
            },
            "x-displayname": "JavaScript Tags.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Select Add item to configure your javascript tag. If adding both Bot Adv and Fraud, the Bot Javascript should be added first.",
            "x-f5xc-description-medium": "Select Add item to configure your javascript tag. If adding both Bot Adv and Fraud, the Bot Javascript should be added first.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 5,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Bot Defense Javascript Injection Configuration for inline bot defense deployments.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeBotDefenseJavascriptInjectionType",
          "required_fields": [
            "javascript_tags"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"javascript_tags\": [\n    {\n      \"javascript_url\": \"https://www.example.com/login/common.js?single\"\n    }\n  ]\n}",
          "example_yaml": "javascript_tags:\n- javascript_url: https://www.example.com/login/common.js?single"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeCookieForHashing": {
        "type": "object",
        "description": "Two types of cookie affinity:\n\n1. Passive. Takes a cookie that's present in the cookies header and\nhashes on its value.\n\n2. Generated. Generates and sets a cookie with an expiration (TTL)\non the first request from the client in its response to the client,\nbased on the endpoint the request gets sent to. The client then\npresents this on the next and all subsequent requests. The hash of\nthis is sufficient to ensure these requests GET sent to the same\nendpoint. The cookie is generated by hashing the source and\ndestination ports and addresses so that multiple independent HTTP2\nstreams on the same connection will independently receive the same\ncookie, even if they arrive simultaneously.",
        "title": "Cookie for hashing",
        "x-displayname": "Hashing using Cookie.",
        "x-ves-oneof-field-httponly": "[\"add_httponly\",\"ignore_httponly\"]",
        "x-ves-oneof-field-samesite": "[\"ignore_samesite\",\"samesite_lax\",\"samesite_none\",\"samesite_strict\"]",
        "x-ves-oneof-field-secure": "[\"add_secure\",\"ignore_secure\"]",
        "x-ves-proto-message": "ves.io.schema.route.CookieForHashing",
        "properties": {
          "add_httponly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for add httponly.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_httponly"
            ]
          },
          "add_secure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_secure"
            ]
          },
          "ignore_httponly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore httponly.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_httponly"
            ]
          },
          "ignore_samesite": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "samesite_lax",
              "samesite_none",
              "samesite_strict"
            ]
          },
          "ignore_secure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_secure"
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the cookie that will be used to obtain the hash key. If the\ncookie is not present and TTL below is not set, no hash will be\nproduced.",
            "title": "name",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Name",
            "x-ves-example": "Userid",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "userid",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "The name of the cookie that will be used to obtain the hash key. If the cookie is not present and TTL below is not set, no hash will be produced.",
            "x-f5xc-description-medium": "The name of the cookie that will be used to obtain the hash key. If the cookie is not present and TTL below is not set, no hash will be produced.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "path": {
            "type": "string",
            "description": "The name of the path for the cookie. If no path is specified here, no path\nwill be set for the cookie.",
            "title": "path",
            "x-displayname": "Path",
            "x-ves-example": "/Users/userid/browser/cookies.",
            "x-f5xc-example": "/Users/userid/browser/cookies",
            "x-f5xc-description-short": "The name of the path for the cookie. If no path is specified here, no path will be set for the cookie.",
            "x-f5xc-description-medium": "The name of the path for the cookie. If no path is specified here, no path will be set for the cookie.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "samesite_lax": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_none",
              "samesite_strict"
            ]
          },
          "samesite_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_lax",
              "samesite_strict"
            ]
          },
          "samesite_strict": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_lax",
              "samesite_none"
            ]
          },
          "ttl": {
            "type": "integer",
            "description": "If specified, a cookie with the TTL will be generated if the cookie is\nnot present. If the TTL is present and zero, the generated cookie will\nbe a session cookie. TTL value is in milliseconds.",
            "title": "ttl",
            "format": "int64",
            "x-displayname": "TTL",
            "x-ves-example": "5000",
            "x-f5xc-example": "5000",
            "x-f5xc-description-short": "If specified, a cookie with the TTL will be generated if the cookie is not present.",
            "x-f5xc-description-medium": "If specified, a cookie with the TTL will be generated if the cookie is not present. If the TTL is present and zero, the generated cookie will be a session cookie. TTL value is in milliseconds.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Two types of cookie affinity: 1. Passive.",
        "x-f5xc-description-medium": "Two types of cookie affinity: 1. Passive. Takes a cookie that's present in the cookies header and hashes on its value. 2. Generated. Generates and sets a cookie with an expiration (TTL) on the first request from the client in its response to the client, based on the endpoint the request gets...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeCookieForHashing",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"userid\"\n}",
          "example_yaml": "name: userid"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeHashPolicyType": {
        "type": "object",
        "description": "HashPolicyType specifies the field of the incoming request that will be used for\ngenerating hash key. When multiple hash policies are configured, this can also specify\nif the current hash policy is terminal policy or not.",
        "title": "HashPolicyType",
        "x-displayname": "Hash Policy.",
        "x-ves-oneof-field-policy_specifier": "[\"cookie\",\"header_name\",\"source_ip\"]",
        "x-ves-proto-message": "ves.io.schema.route.HashPolicyType",
        "properties": {
          "cookie": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeCookieForHashing"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "header_name",
              "source_ip"
            ]
          },
          "header_name": {
            "type": "string",
            "description": "Exclusive with [cookie source_ip]\nThe name or key of the request header that will be used to obtain the hash key.",
            "title": "Header",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Header Name.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [cookie source_ip] The name or key of the request header that will be used to obtain the hash key.",
            "x-f5xc-description-medium": "Exclusive with [cookie source_ip] The name or key of the request header that will be used to obtain the hash key.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie",
              "source_ip"
            ]
          },
          "source_ip": {
            "type": "boolean",
            "description": "Exclusive with [cookie header_name]\nHash based on source IP address.",
            "title": "Source IP",
            "format": "boolean",
            "x-displayname": "Source IP",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Exclusive with [cookie header_name] Hash based on source IP address.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie",
              "header_name"
            ]
          },
          "terminal": {
            "type": "boolean",
            "description": "Specify if its a terminal policy.",
            "title": "terminal",
            "format": "boolean",
            "x-displayname": "Terminal",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "HashPolicyType specifies the field of the incoming request that will be used for generating hash key.",
        "x-f5xc-description-medium": "HashPolicyType specifies the field of the incoming request that will be used for generating hash key. When multiple hash policies are configured, this can also specify if the current hash policy is terminal policy or not.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeHashPolicyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeJavaScriptTag": {
        "type": "object",
        "description": "JavaScript URL and attributes.",
        "title": "JavaScriptTag",
        "x-displayname": "JavaScript Tag.",
        "x-ves-proto-message": "ves.io.schema.route.JavaScriptTag",
        "properties": {
          "javascript_url": {
            "type": "string",
            "description": "Please enter the full URL (include domain and path), or relative path.",
            "title": "JavaScriptURL",
            "minLength": 1,
            "maxLength": 2048,
            "x-displayname": "URL",
            "x-ves-example": "https://www.example.com/login/common.js?single.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "2048",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-example": "https://www.example.com/login/common.js?single",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "2048",
              "ves.io.schema.rules.string.min_bytes": "1"
            },
            "x-f5xc-description-short": "Please enter the full URL (include domain and path), or relative path.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 2048,
              "byteLength": {
                "max": 2048,
                "min": 1
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "tag_attributes": {
            "type": "array",
            "description": "Add the tag attributes you want to include in your Javascript tag.",
            "title": "TagAttributes",
            "maxItems": 9,
            "items": {
              "$ref": "#/components/schemas/routeTagAttribute"
            },
            "x-displayname": "Tag Attributes.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "9",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "9",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Add the tag attributes you want to include in your Javascript tag.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 9,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeJavaScriptTag",
          "required_fields": [
            "javascript_url"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"javascript_url\": \"https://www.example.com/login/common.js?single\"\n}",
          "example_yaml": "javascript_url: https://www.example.com/login/common.js?single"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeQueryParamsSimpleRoute": {
        "type": "object",
        "description": "Handling of incoming query parameters in simple route.",
        "title": "query_params",
        "x-displayname": "Query Parameters.",
        "x-ves-oneof-field-query_params": "[\"remove_all_params\",\"replace_params\",\"retain_all_params\"]",
        "x-ves-proto-message": "ves.io.schema.route.QueryParamsSimpleRoute",
        "properties": {
          "remove_all_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for remove all params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "replace_params",
              "retain_all_params"
            ]
          },
          "replace_params": {
            "type": "string",
            "description": "Exclusive with [remove_all_params retain_all_params]",
            "title": "Replace All Params",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Replace All Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [remove_all_params retain_all_params].",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "remove_all_params",
              "retain_all_params"
            ]
          },
          "retain_all_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for retain all params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "remove_all_params",
              "replace_params"
            ]
          }
        },
        "x-f5xc-description-short": "Handling of incoming query parameters in simple route.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeQueryParamsSimpleRoute",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeRouteDirectResponse": {
        "type": "object",
        "description": "Send this direct response in case of route match action is direct response.",
        "title": "RouteDirectResponse",
        "x-displayname": "Direct Response.",
        "x-ves-proto-message": "ves.io.schema.route.RouteDirectResponse",
        "properties": {
          "response_body_encoded": {
            "type": "string",
            "description": "Response body to send. Currently supported URL schemes is string:///\nfor which message should be encoded in Base64 format.\nThe message can be either plain text or HTML.\nE.g. \"<p> Access Denied </p>\". Base64 encoded string URL for this is string:///PHA+IEFjY2VzcyBEZW5pZWQgPC9wPg==.",
            "title": "response_body",
            "maxLength": 65536,
            "x-displayname": "Response Body.",
            "x-ves-example": "OK",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-example": "OK",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Response body to send. Currently supported URL schemes is string:/// for which message should be encoded in Base64 format.",
            "x-f5xc-description-medium": "Response body to send. Currently supported URL schemes is string:/// for which message should be encoded in Base64 format. The message can be either plain text or HTML.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 65536,
              "byteLength": {
                "max": 65536
              },
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_code": {
            "type": "integer",
            "description": "Response code to send.",
            "title": "response_code",
            "format": "int64",
            "x-displayname": "Response Code.",
            "x-ves-example": "200",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "100",
              "ves.io.schema.rules.uint32.lte": "599"
            },
            "x-f5xc-example": "200",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "100",
              "ves.io.schema.rules.uint32.lte": "599"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 100,
              "maximum": 599,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Send this direct response in case of route match action is direct response.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeRouteDirectResponse",
          "required_fields": [
            "response_code"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"response_code\": 100\n}",
          "example_yaml": "response_code: 100"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeRouteRedirect": {
        "type": "object",
        "description": "Route redirect parameters when match action is redirect.",
        "title": "RouteRedirect",
        "x-displayname": "Redirect",
        "x-ves-displayorder": "3,1,10,6,7",
        "x-ves-oneof-field-query_params": "[\"remove_all_params\",\"replace_params\",\"retain_all_params\"]",
        "x-ves-oneof-field-redirect_path_choice": "[\"path_redirect\",\"prefix_rewrite\"]",
        "x-ves-proto-message": "ves.io.schema.route.RouteRedirect",
        "properties": {
          "host_redirect": {
            "type": "string",
            "description": "Swap host part of incoming URL in redirect URL.",
            "title": "host_redirect",
            "x-displayname": "Host",
            "x-ves-example": "one.ves.I/O.",
            "x-f5xc-example": "one.F5 XC",
            "x-f5xc-description-short": "Swap host part of incoming URL in redirect URL.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path_redirect": {
            "type": "string",
            "description": "Exclusive with [prefix_rewrite]\nswap path part of incoming URL in redirect URL.",
            "title": "path_redirect",
            "maxLength": 256,
            "x-displayname": "Path",
            "x-ves-example": "/API/register.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/api/register",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [prefix_rewrite] swap path part of incoming URL in redirect URL.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "prefix_rewrite"
            ]
          },
          "prefix_rewrite": {
            "type": "string",
            "description": "Exclusive with [path_redirect]\nIn Redirect response, the matched prefix (or path) should be swapped with this value.\nThis option allows redirect URLs be dynamically created based on the request.",
            "title": "prefix_rewrite",
            "maxLength": 256,
            "x-displayname": "Prefix Rewrite.",
            "x-ves-example": "/API/register/.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "/api/register/",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [path_redirect] In Redirect response, the matched prefix (or path) should be swapped with this value.",
            "x-f5xc-description-medium": "Exclusive with [path_redirect] In Redirect response, the matched prefix (or path) should be swapped with this value. This option allows redirect URLs be dynamically created based on the request.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "path_redirect"
            ]
          },
          "proto_redirect": {
            "type": "string",
            "description": "Swap protocol part of incoming URL in redirect URL\nThe protocol can be swapped with either HTTP or HTTPS\nWhen incoming-proto option is specified, swapping of protocol is not done.",
            "title": "proto_redirect",
            "x-displayname": "Protocol",
            "x-ves-example": "HTTPS",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"incoming-proto\\\",\\\"http\\\",\\\"https\\\"]"
            },
            "x-f5xc-example": "https",
            "x-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"incoming-proto\\\",\\\"http\\\",\\\"https\\\"]"
            },
            "x-f5xc-description-short": "Swap protocol part of incoming URL in redirect URL The protocol can be swapped with either HTTP or HTTPS When incoming-proto option is specified...",
            "x-f5xc-description-medium": "Swap protocol part of incoming URL in redirect URL The protocol can be swapped with either HTTP or HTTPS When incoming-proto option is specified, swapping of protocol is not done.",
            "maxLength": 1024,
            "enum": [
              "incoming-proto",
              "http",
              "https"
            ],
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "remove_all_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for remove all params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "replace_params",
              "retain_all_params"
            ]
          },
          "replace_params": {
            "type": "string",
            "description": "Exclusive with [remove_all_params retain_all_params]",
            "title": "Replace All Params",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Replace All Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [remove_all_params retain_all_params].",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "remove_all_params",
              "retain_all_params"
            ]
          },
          "response_code": {
            "type": "integer",
            "description": "The HTTP status code to use in the redirect response.",
            "title": "response_code",
            "format": "int64",
            "x-displayname": "Response Code.",
            "x-ves-example": "303",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "599"
            },
            "x-f5xc-example": "303",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "599"
            },
            "x-f5xc-description-short": "The HTTP status code to use in the redirect response.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 599,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retain_all_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for retain all params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "remove_all_params",
              "replace_params"
            ]
          }
        },
        "x-f5xc-description-short": "Route redirect parameters when match action is redirect.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeRouteRedirect",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeTagAttribute": {
        "type": "object",
        "description": "Attribute for JavaScript tag.",
        "title": "TagAttribute",
        "x-displayname": "Tag Attribute.",
        "x-ves-proto-message": "ves.io.schema.route.TagAttribute",
        "properties": {
          "javascript_tag": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeTagAttributeName"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tag_value": {
            "type": "string",
            "description": "Add the tag attribute value.",
            "title": "TagValue",
            "maxLength": 1024,
            "x-displayname": "Value",
            "x-ves-example": "_imp_apg_dip_.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1024"
            },
            "x-f5xc-example": "_imp_apg_dip_",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1024"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "byteLength": {
                "max": 1024
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeTagAttribute",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeTagAttributeName": {
        "type": "string",
        "description": "Select from one of the predefined tag attributes.",
        "title": "TagAttributeName",
        "enum": [
          "JS_ATTR_ID",
          "JS_ATTR_CID",
          "JS_ATTR_CN",
          "JS_ATTR_API_DOMAIN",
          "JS_ATTR_API_URL",
          "JS_ATTR_API_PATH",
          "JS_ATTR_ASYNC",
          "JS_ATTR_DEFER"
        ],
        "default": "JS_ATTR_ID",
        "x-displayname": "Tag Attribute Name.",
        "x-ves-proto-enum": "ves.io.schema.route.TagAttributeName",
        "x-f5xc-description-short": "Select from one of the predefined tag attributes.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeTagAttributeName",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"JS_ATTR_ID\"",
          "example_yaml": "JS_ATTR_ID\n..."
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "routeWebsocketConfigType": {
        "type": "object",
        "description": "Configuration to allow Websocket\n\nRequest headers of such upgrade looks like below\n'connection', 'Upgrade'\n'upgrade', 'websocket'\n\nWith configuration to allow websocket upgrade, ADC will produce following response\n'HTTP/1.1 101 Switching Protocols\n'Upgrade': 'websocket'\n'Connection': 'Upgrade'",
        "title": "WebsocketConfigType",
        "x-displayname": "Websocket Configuration.",
        "x-ves-proto-message": "ves.io.schema.route.WebsocketConfigType",
        "properties": {
          "use_websocket": {
            "type": "boolean",
            "description": "Specifies that the HTTP client connection to this route is allowed to upgrade to\na WebSocket connection.",
            "title": "use_websocket",
            "format": "boolean",
            "x-displayname": "Use Websocket.",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Specifies that the HTTP client connection to this route is allowed to upgrade to a WebSocket connection.",
            "x-f5xc-description-medium": "Specifies that the HTTP client connection to this route is allowed to upgrade to a WebSocket connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Configuration to allow Websocket Request headers of such upgrade looks like below 'connection', 'Upgrade' 'upgrade', 'websocket' With...",
        "x-f5xc-description-medium": "Configuration to allow Websocket Request headers of such upgrade looks like below 'connection', 'Upgrade' 'upgrade', 'websocket' With configuration to allow websocket upgrade, ADC will produce following response 'HTTP/1.1 101 Switching Protocols 'Upgrade': 'websocket' 'Connection': 'Upgrade'.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for routeWebsocketConfigType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaAction": {
        "type": "object",
        "title": "action",
        "x-displayname": "Action",
        "x-ves-oneof-field-action_choice": "[\"block\",\"report\"]",
        "x-ves-proto-message": "ves.io.schema.Action",
        "properties": {
          "block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "report"
            ]
          },
          "report": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "block"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelAccountManagementChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Account Management Category.",
        "title": "BotDefenseFlowLabelAccountManagementChoiceType",
        "x-displayname": "Bot Defense Flow Label Account Management Category.",
        "x-ves-oneof-field-label_choice": "[\"create\",\"password_reset\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelAccountManagementChoiceType",
        "properties": {
          "create": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "password_reset"
            ]
          },
          "password_reset": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for password reset.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "create"
            ]
          }
        },
        "x-f5xc-description-short": "Bot Defense Flow Label Account Management Category.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelAccountManagementChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelAuthenticationChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Authentication Category.",
        "title": "BotDefenseFlowLabelCategoryChoiceType",
        "x-displayname": "Bot Defense Flow Label Authentication Category.",
        "x-ves-oneof-field-label_choice": "[\"login\",\"login_mfa\",\"login_partner\",\"logout\",\"token_refresh\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelAuthenticationChoiceType",
        "properties": {
          "login": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseTransactionResult"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "login_mfa",
              "login_partner",
              "logout",
              "token_refresh"
            ]
          },
          "login_mfa": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "login",
              "login_partner",
              "logout",
              "token_refresh"
            ]
          },
          "login_partner": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for login partner.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "login",
              "login_mfa",
              "logout",
              "token_refresh"
            ]
          },
          "logout": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "login",
              "login_mfa",
              "login_partner",
              "token_refresh"
            ]
          },
          "token_refresh": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for token refresh.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "login",
              "login_mfa",
              "login_partner",
              "logout"
            ]
          }
        },
        "x-f5xc-description-short": "Bot Defense Flow Label Authentication Category.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelAuthenticationChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelCategoriesChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Category allows to associate traffic with selected category.",
        "title": "BotDefenseFlowLabelCategoryChoiceType",
        "x-displayname": "Bot Defense Flow Label Category.",
        "x-ves-oneof-field-flow_label_choice": "[\"account_management\",\"authentication\",\"financial_services\",\"flight\",\"profile_management\",\"search\",\"shopping_gift_cards\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelCategoriesChoiceType",
        "properties": {
          "account_management": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelAccountManagementChoiceType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for account management.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "authentication",
              "financial_services",
              "flight",
              "profile_management",
              "search",
              "shopping_gift_cards"
            ]
          },
          "authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelAuthenticationChoiceType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "account_management",
              "financial_services",
              "flight",
              "profile_management",
              "search",
              "shopping_gift_cards"
            ]
          },
          "financial_services": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelFinancialServicesChoiceType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for financial services.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "account_management",
              "authentication",
              "flight",
              "profile_management",
              "search",
              "shopping_gift_cards"
            ]
          },
          "flight": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelFlightChoiceType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "account_management",
              "authentication",
              "financial_services",
              "profile_management",
              "search",
              "shopping_gift_cards"
            ]
          },
          "profile_management": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelProfileManagementChoiceType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for profile management.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "account_management",
              "authentication",
              "financial_services",
              "flight",
              "search",
              "shopping_gift_cards"
            ]
          },
          "search": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelSearchChoiceType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "account_management",
              "authentication",
              "financial_services",
              "flight",
              "profile_management",
              "shopping_gift_cards"
            ]
          },
          "shopping_gift_cards": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseFlowLabelShoppingGiftCardsChoiceType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shopping gift cards.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "account_management",
              "authentication",
              "financial_services",
              "flight",
              "profile_management",
              "search"
            ]
          }
        },
        "x-f5xc-description-short": "Bot Defense Flow Label Category allows to associate traffic with selected category.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelCategoriesChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelFinancialServicesChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Financial Services Category.",
        "title": "BotDefenseFlowLabelFinancialServicesChoiceType",
        "x-displayname": "Bot Defense Flow Label Financial Services Category.",
        "x-ves-oneof-field-label_choice": "[\"apply\",\"money_transfer\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelFinancialServicesChoiceType",
        "properties": {
          "apply": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "money_transfer"
            ]
          },
          "money_transfer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for money transfer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "apply"
            ]
          }
        },
        "x-f5xc-description-short": "Bot Defense Flow Label Financial Services Category.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelFinancialServicesChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelFlightChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Flight Category.",
        "title": "BotDefenseFlowLabelFlightChoiceType",
        "x-displayname": "Bot Defense Flow Label Flight Category.",
        "x-ves-oneof-field-label_choice": "[\"checkin\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelFlightChoiceType",
        "properties": {
          "checkin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelFlightChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelProfileManagementChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Profile Management Category.",
        "title": "BotDefenseFlowLabelProfileManagementChoiceType",
        "x-displayname": "Bot Defense Flow Label Profile Management Category.",
        "x-ves-oneof-field-label_choice": "[\"create\",\"update\",\"view\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelProfileManagementChoiceType",
        "properties": {
          "create": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "update",
              "view"
            ]
          },
          "update": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "create",
              "view"
            ]
          },
          "view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "create",
              "update"
            ]
          }
        },
        "x-f5xc-description-short": "Bot Defense Flow Label Profile Management Category.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelProfileManagementChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelSearchChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Search Category.",
        "title": "BotDefenseFlowLabelSearchChoiceType",
        "x-displayname": "Bot Defense Flow Label Search Category.",
        "x-ves-oneof-field-label_choice": "[\"flight_search\",\"product_search\",\"reservation_search\",\"room_search\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelSearchChoiceType",
        "properties": {
          "flight_search": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for flight search.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "product_search",
              "reservation_search",
              "room_search"
            ]
          },
          "product_search": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for product search.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "flight_search",
              "reservation_search",
              "room_search"
            ]
          },
          "reservation_search": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for reservation search.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "flight_search",
              "product_search",
              "room_search"
            ]
          },
          "room_search": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for room search.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "flight_search",
              "product_search",
              "reservation_search"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelSearchChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseFlowLabelShoppingGiftCardsChoiceType": {
        "type": "object",
        "description": "Bot Defense Flow Label Shopping & Gift Cards Category.",
        "title": "BotDefenseFlowLabelShoppingGiftCardsChoiceType",
        "x-displayname": "Bot Defense Flow Label Shopping & Gift Cards Category.",
        "x-ves-oneof-field-label_choice": "[\"gift_card_make_purchase_with_gift_card\",\"gift_card_validation\",\"shop_add_to_cart\",\"shop_checkout\",\"shop_choose_seat\",\"shop_enter_drawing_submission\",\"shop_make_payment\",\"shop_order\",\"shop_price_inquiry\",\"shop_promo_code_validation\",\"shop_purchase_gift_card\",\"shop_update_quantity\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseFlowLabelShoppingGiftCardsChoiceType",
        "properties": {
          "gift_card_make_purchase_with_gift_card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for gift card make purchase with gift card.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "gift_card_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for gift card validation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_add_to_cart": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop add to cart.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_checkout": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop checkout.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_choose_seat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop choose seat.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_enter_drawing_submission": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop enter drawing submission.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_make_payment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop make payment.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_order": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_price_inquiry": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop price inquiry.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_promo_code_validation",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_promo_code_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop promo code validation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_purchase_gift_card",
              "shop_update_quantity"
            ]
          },
          "shop_purchase_gift_card": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop purchase gift card.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_update_quantity"
            ]
          },
          "shop_update_quantity": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for shop update quantity.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "gift_card_make_purchase_with_gift_card",
              "gift_card_validation",
              "shop_add_to_cart",
              "shop_checkout",
              "shop_choose_seat",
              "shop_enter_drawing_submission",
              "shop_make_payment",
              "shop_order",
              "shop_price_inquiry",
              "shop_promo_code_validation",
              "shop_purchase_gift_card"
            ]
          }
        },
        "x-f5xc-description-short": "Bot Defense Flow Label Shopping & Gift Cards Category.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseFlowLabelShoppingGiftCardsChoiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "statistics",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseTransactionResult": {
        "type": "object",
        "description": "Bot Defense Transaction Result.",
        "title": "BotDefenseTransactionResult",
        "x-displayname": "Bot Defense Transaction Result.",
        "x-ves-oneof-field-transaction_result_choice": "[\"disable_transaction_result\",\"transaction_result\"]",
        "x-ves-proto-message": "ves.io.schema.BotDefenseTransactionResult",
        "properties": {
          "disable_transaction_result": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "transaction_result"
            ]
          },
          "transaction_result": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBotDefenseTransactionResultType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_transaction_result"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseTransactionResult",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseTransactionResultCondition": {
        "type": "object",
        "description": "Bot Defense Transaction Result Condition.",
        "title": "BotDefenseTransactionResultCondition",
        "x-displayname": "Bot Defense Transaction Result Condition.",
        "x-ves-displayorder": "3,1,2",
        "x-ves-proto-message": "ves.io.schema.BotDefenseTransactionResultCondition",
        "properties": {
          "name": {
            "type": "string",
            "description": "A case-insensitive HTTP header name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "Header Name.",
            "x-ves-example": "Accept-Encoding.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Accept-Encoding",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "regex_values": {
            "type": "array",
            "description": "A list of regular expressions to match the input against.",
            "title": "regex values",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Regex Values.",
            "x-ves-example": "['^new .*$', 'san f.*', '.* del .*']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['^new .*$', 'san f.*', '.* del .*']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of regular expressions to match the input against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpStatusCode"
              }
            ],
            "x-f5xc-example": "active",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Bot Defense Transaction Result Condition.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseTransactionResultCondition",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotDefenseTransactionResultType": {
        "type": "object",
        "description": "Bot Defense Transaction ResultType.",
        "title": "BotDefenseTransactionResultType",
        "x-displayname": "Bot Defense Transaction Result Type.",
        "x-ves-displayorder": "4,3",
        "x-ves-proto-message": "ves.io.schema.BotDefenseTransactionResultType",
        "properties": {
          "failure_conditions": {
            "type": "array",
            "description": "Failure Conditions.",
            "title": "Failure Conditions",
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/schemaBotDefenseTransactionResultCondition"
            },
            "x-displayname": "Failure Conditions.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "3",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "3",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 3,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "success_conditions": {
            "type": "array",
            "description": "Success Conditions.",
            "title": "Success Conditions",
            "maxItems": 3,
            "items": {
              "$ref": "#/components/schemas/schemaBotDefenseTransactionResultCondition"
            },
            "x-displayname": "Success Conditions.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "3",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "3",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 3,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotDefenseTransactionResultType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBotHttpMethod": {
        "type": "string",
        "description": "Specifies the HTTP method used to access a resource.\n\nAny HTTP Method\nGET method for XMLHttpRequest or Fetch\nPOST method\nPUT method\nPATCH method\nDELETE method\nGET method for HTML document.",
        "title": "BotHttpMethod",
        "enum": [
          "METHOD_ANY",
          "METHOD_GET",
          "METHOD_POST",
          "METHOD_PUT",
          "METHOD_PATCH",
          "METHOD_DELETE",
          "METHOD_GET_DOCUMENT"
        ],
        "default": "METHOD_ANY",
        "x-displayname": "HTTP Method.",
        "x-ves-proto-enum": "ves.io.schema.BotHttpMethod",
        "x-f5xc-description-short": "Specifies the HTTP method used to access a resource.",
        "x-f5xc-description-medium": "Specifies the HTTP method used to access a resource. Any HTTP Method GET method for XMLHttpRequest or Fetch POST method PUT method PATCH method DELETE method GET method for HTML document.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBotHttpMethod",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"METHOD_ANY\"",
          "example_yaml": "METHOD_ANY\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaBufferConfigType": {
        "type": "object",
        "description": "Some upstream applications are not capable of handling streamed data. This config\nenables buffering the entire request before sending to upstream application. We can\nspecify the maximum buffer size and buffer interval with this config.\n\nBuffering can be enabled and disabled at VirtualHost and Route levels\nRoute level buffer configuration takes precedence.",
        "title": "BufferConfigType",
        "x-displayname": "Buffer Configuration.",
        "x-ves-displayorder": "2,3,1",
        "x-ves-proto-message": "ves.io.schema.BufferConfigType",
        "properties": {
          "disabled": {
            "type": "boolean",
            "description": "Disable buffering for a particular route. This is useful when virtual-host\nhas buffering, but we need to disable it on a specific route.\nThe value of this field is ignored for virtual-host.",
            "title": "disable",
            "format": "boolean",
            "x-displayname": "Disable",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Disable buffering for a particular route. This is useful when virtual-host has buffering, but we need to disable it on a specific route.",
            "x-f5xc-description-medium": "Disable buffering for a particular route. This is useful when virtual-host has buffering, but we need to disable it on a specific route. The value of this field is ignored for virtual-host.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_request_bytes": {
            "type": "integer",
            "description": "The maximum request size that the filter will buffer before the connection\nmanager will stop buffering and return a RequestEntityTooLarge (413) response.",
            "title": "max_request_bytes",
            "format": "int64",
            "x-displayname": "Max Request Bytes.",
            "x-ves-example": "2048",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "10485760"
            },
            "x-f5xc-example": "2048",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "10485760"
            },
            "x-f5xc-description-short": "The maximum request size that the filter will buffer before the connection manager will stop buffering and return a RequestEntityTooLarge (413)...",
            "x-f5xc-description-medium": "The maximum request size that the filter will buffer before the connection manager will stop buffering and return a RequestEntityTooLarge (413) response.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 10485760,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Some upstream applications are not capable of handling streamed data.",
        "x-f5xc-description-medium": "Some upstream applications are not capable of handling streamed data. This config enables buffering the entire request before sending to upstream application. We can specify the maximum buffer size and buffer interval with this config.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaBufferConfigType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaCookieManipulationOptionType": {
        "type": "object",
        "description": "Set Cookie protection attributes.",
        "title": "CookieManipulationOptionType",
        "x-displayname": "Cookie Protection.",
        "x-ves-oneof-field-cookie_tampering": "[\"disable_tampering_protection\",\"enable_tampering_protection\"]",
        "x-ves-oneof-field-httponly": "[\"add_httponly\",\"ignore_httponly\"]",
        "x-ves-oneof-field-max_age": "[\"ignore_max_age\",\"max_age_value\"]",
        "x-ves-oneof-field-samesite": "[\"ignore_samesite\",\"samesite_lax\",\"samesite_none\",\"samesite_strict\"]",
        "x-ves-oneof-field-secure": "[\"add_secure\",\"ignore_secure\"]",
        "x-ves-proto-message": "ves.io.schema.CookieManipulationOptionType",
        "properties": {
          "add_httponly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for add httponly.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_httponly"
            ]
          },
          "add_secure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_secure"
            ]
          },
          "disable_tampering_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable tampering protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_tampering_protection"
            ]
          },
          "enable_tampering_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable tampering protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_tampering_protection"
            ]
          },
          "ignore_httponly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore httponly.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_httponly"
            ]
          },
          "ignore_max_age": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore max age.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_age_value"
            ]
          },
          "ignore_samesite": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "samesite_lax",
              "samesite_none",
              "samesite_strict"
            ]
          },
          "ignore_secure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_secure"
            ]
          },
          "max_age_value": {
            "type": "integer",
            "description": "Exclusive with [ignore_max_age]\nAdd max age attribute.",
            "title": "add_max_age",
            "format": "int32",
            "x-displayname": "Add Max Age.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "34560000"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "34560000"
            },
            "x-f5xc-description-short": "Exclusive with [ignore_max_age] Add max age attribute.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 34560000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_max_age"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the Cookie.",
            "title": "name",
            "maxLength": 256,
            "x-displayname": "Cookie Name.",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.cookie_name": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.cookie_name": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "samesite_lax": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_none",
              "samesite_strict"
            ]
          },
          "samesite_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_lax",
              "samesite_strict"
            ]
          },
          "samesite_strict": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_lax",
              "samesite_none"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaCookieManipulationOptionType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"value\"\n}",
          "example_yaml": "name: value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaCookieValueOption": {
        "type": "object",
        "description": "Cookie name and value for cookie header.",
        "title": "CookieValueOption",
        "x-displayname": "Cookie Value Option.",
        "x-ves-oneof-field-value_choice": "[\"secret_value\",\"value\"]",
        "x-ves-proto-message": "ves.io.schema.CookieValueOption",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the cookie in Cookie header.",
            "title": "name",
            "maxLength": 256,
            "x-displayname": "Name",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.cookie_name": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.cookie_name": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "overwrite": {
            "type": "boolean",
            "description": "Should the value be overwritten? If true, the value is overwritten to existing values.\nDefault value is do not overwrite.",
            "title": "overwrite",
            "format": "boolean",
            "x-displayname": "Overwrite",
            "x-f5xc-description-short": "Should the value be overwritten? If true, the value is overwritten to existing values.",
            "x-f5xc-description-medium": "Should the value be overwritten? If true, the value is overwritten to existing values. Default value is do not overwrite.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "secret_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "value"
            ]
          },
          "value": {
            "type": "string",
            "description": "Exclusive with [secret_value]\nValue of the Cookie header.",
            "title": "value",
            "maxLength": 8096,
            "x-displayname": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-description-short": "Exclusive with [secret_value] Value of the Cookie header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "secret_value"
            ]
          }
        },
        "x-f5xc-description-short": "Cookie name and value for cookie header.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaCookieValueOption",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"value\"\n}",
          "example_yaml": "name: value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaCorsPolicy": {
        "type": "object",
        "description": "Cross-Origin Resource Sharing requests configuration specified at Virtual-host or\nRoute level. Route level configuration takes precedence.\n\nAn example of an Cross origin HTTP request\nGET /resources/public-data/ HTTP/1.1\nHost: bar.other\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel MAC OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre\nAccept: text/HTML,application/xhtml+XML,application/XML;q=0.9,*/*;q=0.8\nAccept-Language: en-us,en;q=0.5\nAccept-Encoding: gzip,deflate\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\nConnection: keep-alive\nReferrer: http://foo.example/examples/access-control/simplexsinvocation.html\nOrigin: http://foo.example\n\nHTTP/1.1 200 OK\nDate: Mon, 01 Dec 2008 00:23:53 GMT\nServer: Apache/2.0.61\nAccess-Control-Allow-Origin: *\nKeep-Alive: timeout=2, max=100\nConnection: Keep-Alive\nTransfer-Encoding: chunked\nContent-Type: application/XML\n\nAn example for cross origin HTTP OPTIONS request with Access-Control-Request-* header\n\nOPTIONS /resources/POST-here/ HTTP/1.1\nHost: bar.other\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel MAC OS X 10.5; en-US; rv:1.9.1b3pre) Gecko/20081130 Minefield/3.1b3pre\nAccept: text/HTML,application/xhtml+XML,application/XML;q=0.9,*/*;q=0.8\nAccept-Language: en-us,en;q=0.5\nAccept-Encoding: gzip,deflate\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\nConnection: keep-alive\nOrigin: http://foo.example\nAccess-Control-Request-Method: POST\nAccess-Control-Request-Headers: X-PINGOTHER, Content-Type\n\nHTTP/1.1 204 No Content\nDate: Mon, 01 Dec 2008 01:15:39 GMT\nServer: Apache/2.0.61 (Unix)\nAccess-Control-Allow-Origin: http://foo.example\nAccess-Control-Allow-Methods: POST, GET, OPTIONS\nAccess-Control-Allow-Headers: X-PINGOTHER, Content-Type\nAccess-Control-Max-Age: 86400\nVary: Accept-Encoding, Origin\nKeep-Alive: timeout=2, max=100\nConnection: Keep-Alive.",
        "title": "CorsPolicy",
        "x-displayname": "CORS Policy.",
        "x-ves-displayorder": "2,3,4,5,6,9,8,1",
        "x-ves-proto-message": "ves.io.schema.CorsPolicy",
        "properties": {
          "allow_credentials": {
            "type": "boolean",
            "description": "Specifies whether the resource allows credentials.",
            "title": "allow_credentials",
            "format": "boolean",
            "x-displayname": "Allow Credentials.",
            "x-f5xc-description-short": "Specifies whether the resource allows credentials.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "allow_headers": {
            "type": "string",
            "description": "Specifies the content for the access-control-allow-headers header.",
            "title": "allow_headers",
            "x-displayname": "Allow Headers.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Specifies the content for the access-control-allow-headers header.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "allow_methods": {
            "type": "string",
            "description": "Specifies the content for the access-control-allow-methods header.",
            "title": "allow_methods",
            "x-displayname": "Allow Methods.",
            "x-ves-example": "GET",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_valid_methods": "true"
            },
            "x-f5xc-example": "GET",
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_valid_methods": "true"
            },
            "x-f5xc-description-short": "Specifies the content for the access-control-allow-methods header.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "allow_origin": {
            "type": "array",
            "description": "Specifies the origins that will be allowed to do CORS requests.\nAn origin is allowed if either allow_origin or allow_origin_regex match.",
            "title": "allow_origin",
            "maxItems": 128,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Allow Origin.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Specifies the origins that will be allowed to do CORS requests. An origin is allowed if either allow_origin or allow_origin_regex match.",
            "x-f5xc-description-medium": "Specifies the origins that will be allowed to do CORS requests. An origin is allowed if either allow_origin or allow_origin_regex match.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "allow_origin_regex": {
            "type": "array",
            "description": "Specifies regex patterns that match allowed origins.\nAn origin is allowed if either allow_origin or allow_origin_regex match.",
            "title": "allow_origin_regex",
            "maxItems": 16,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Allow Origin Regex.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Specifies regex patterns that match allowed origins. An origin is allowed if either allow_origin or allow_origin_regex match.",
            "x-f5xc-description-medium": "Specifies regex patterns that match allowed origins. An origin is allowed if either allow_origin or allow_origin_regex match.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled": {
            "type": "boolean",
            "description": "Disable the CorsPolicy for a particular route. This is useful when\nvirtual-host has CorsPolicy, but we need to disable it on a specific route.\nThe value of this field is ignored for virtual-host.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Disable the CorsPolicy for a particular route. This is useful when virtual-host has CorsPolicy, but we need to disable it on a specific route.",
            "x-f5xc-description-medium": "Disable the CorsPolicy for a particular route. This is useful when virtual-host has CorsPolicy, but we need to disable it on a specific route. The value of this field is ignored for virtual-host.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "expose_headers": {
            "type": "string",
            "description": "Specifies the content for the access-control-expose-headers header.",
            "title": "expose_headers",
            "x-displayname": "Expose Headers.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Specifies the content for the access-control-expose-headers header.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "maximum_age": {
            "type": "integer",
            "description": "Specifies the content for the access-control-max-age header in seconds.\nThis indicates the maximum number of seconds the results can be cached\nA value of -1 will disable caching.\nMaximum permitted value is 86400 seconds (24 hours)",
            "title": "maximum_age",
            "format": "int32",
            "x-displayname": "Maximum Age.",
            "x-ves-example": "-1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.int32.gte": "-1",
              "ves.io.schema.rules.int32.lte": "86400"
            },
            "x-f5xc-example": "-1",
            "x-validation-rules": {
              "ves.io.schema.rules.int32.gte": "-1",
              "ves.io.schema.rules.int32.lte": "86400"
            },
            "x-f5xc-description-short": "Specifies the content for the access-control-max-age header in seconds.",
            "x-f5xc-description-medium": "Specifies the content for the access-control-max-age header in seconds. This indicates the maximum number of seconds the results can be cached A value of -1 will disable caching. Maximum permitted value is 86400 seconds (24 hours).",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": -1,
              "maximum": 86400,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Cross-Origin Resource Sharing requests configuration specified at Virtual-host or Route level.",
        "x-f5xc-description-medium": "Cross-Origin Resource Sharing requests configuration specified at Virtual-host or Route level. Route level configuration takes precedence. An example of an Cross origin HTTP request GET /resources/public-data/ HTTP/1.1 Host: bar.other User-Agent: Mozilla/5.0 (Macintosh; U; Intel MAC OS X 10.5...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaCorsPolicy",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaCsrfPolicy": {
        "type": "object",
        "description": "To mitigate CSRF attack , the policy checks where a request is coming from to determine if the request's origin is the same as its destination.the policy relies on two pieces of information used in determining if a request originated from the same host.\n\n1. The origin that caused the user agent to issue the request (source origin).\n2. The origin that the request is going to (target origin).\nWhen the policy evaluating a request, it ensures both pieces of information are present and compare their values. If the source origin is missing or origins do not match the request is rejected. The exception to this being if the source-origin has been added to they policy as valid.\nBecause CSRF attacks specifically target state-changing requests, the policy only acts on the HTTP requests that have state-changing method (PUT,POST, etc.).",
        "title": "CsrfPolicy",
        "x-displayname": "CSRF Policy.",
        "x-ves-oneof-field-allowed_domains": "[\"all_load_balancer_domains\",\"custom_domain_list\",\"disabled\"]",
        "x-ves-proto-message": "ves.io.schema.CsrfPolicy",
        "properties": {
          "all_load_balancer_domains": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for all load balancer domains.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_domain_list",
              "disabled"
            ]
          },
          "custom_domain_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainNameList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_load_balancer_domains",
              "disabled"
            ]
          },
          "disabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "True",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_load_balancer_domains",
              "custom_domain_list"
            ]
          }
        },
        "x-f5xc-description-short": "To mitigate CSRF attack , the policy checks where a request is coming from to determine if the request's origin is the same as its destination.the...",
        "x-f5xc-description-medium": "To mitigate CSRF attack , the policy checks where a request is coming from to determine if the request's origin is the same as its destination.the policy relies on two pieces of information used in determining if a request originated from the same host. 1. The origin that caused the user agent...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaCsrfPolicy",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaDenominatorType": {
        "type": "string",
        "description": "Denominator used in fraction where sampling percentages are needed. Example sampled requests\n\nUse hundred as denominator\nUse ten thousand as denominator\nUse million as denominator.",
        "title": "DenominatorType",
        "enum": [
          "HUNDRED",
          "TEN_THOUSAND",
          "MILLION"
        ],
        "default": "HUNDRED",
        "x-displayname": "Denominator.",
        "x-ves-proto-enum": "ves.io.schema.DenominatorType",
        "x-f5xc-description-short": "Denominator used in fraction where sampling percentages are needed.",
        "x-f5xc-description-medium": "Denominator used in fraction where sampling percentages are needed. Example sampled requests Use hundred as denominator Use ten thousand as denominator Use million as denominator.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaDenominatorType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"HUNDRED\"",
          "example_yaml": "HUNDRED\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaDomainMatcherType": {
        "type": "object",
        "description": "Domain to be matched.",
        "title": "DomainMatcherType",
        "x-displayname": "Domain to Match.",
        "x-ves-oneof-field-domain_matcher": "[\"any_domain\",\"domain\"]",
        "x-ves-proto-message": "ves.io.schema.DomainMatcherType",
        "properties": {
          "any_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "domain"
            ]
          },
          "domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainType"
              }
            ],
            "x-f5xc-example": "example.com",
            "x-f5xc-description-short": "Domain name for routing and identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "any_domain"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaDomainMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaDomainNameList": {
        "type": "object",
        "description": "List of domain names used for Host header matching.",
        "title": "List of Domain names",
        "x-displayname": "Domain name list.",
        "x-ves-proto-message": "ves.io.schema.DomainNameList",
        "properties": {
          "domains": {
            "type": "array",
            "description": "A list of domain names that will be matched to loadbalancer.\nThese domains are not used for SNI match.\nWildcard names are supported in the suffix or prefix form.",
            "title": "Domains",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Domain names.",
            "x-ves-example": "www.example.com.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domain names that will be matched to loadbalancer. These domains are not used for SNI match.",
            "x-f5xc-description-medium": "List of domain names that will be matched to loadbalancer. These domains are not used for SNI match. Wildcard names are supported in the suffix or prefix form.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of domain names used for Host header matching.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaDomainNameList",
          "required_fields": [
            "domains"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domains\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "domains:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaDomainType": {
        "type": "object",
        "description": "Domains names.",
        "title": "Domains",
        "x-displayname": "Domains",
        "x-ves-oneof-field-domain_choice": "[\"exact_value\",\"regex_value\",\"suffix_value\"]",
        "x-ves-proto-message": "ves.io.schema.DomainType",
        "properties": {
          "exact_value": {
            "type": "string",
            "description": "Exclusive with [regex_value suffix_value]\nExact domain name.",
            "title": "exact value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Exact Value.",
            "x-ves-example": "abc.zyz.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "abc.zyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [regex_value suffix_value] Exact domain name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "regex_value",
              "suffix_value"
            ]
          },
          "regex_value": {
            "type": "string",
            "description": "Exclusive with [exact_value suffix_value]\nRegular Expression value for the domain name.",
            "title": "regex values of Domains",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Regex Values of Domains.",
            "x-ves-example": "([a-z]([-a-z0-9]*[a-z0-9])?)\\\\.com$.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-example": "([a-z]([-a-z0-9]*[a-z0-9])?)\\\\.com$",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-description-short": "Exclusive with [exact_value suffix_value] Regular Expression value for the domain name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact_value",
              "suffix_value"
            ]
          },
          "suffix_value": {
            "type": "string",
            "description": "Exclusive with [exact_value regex_value]\nSuffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\"",
            "title": "suffix value",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Suffix Value.",
            "x-ves-example": "xyz.com",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "xyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [exact_value regex_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-description-medium": "Exclusive with [exact_value regex_value] Suffix of domain name e.g \"xyz.com\" will match \"*.xyz.com\" and \"xyz.com\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "exact_value",
              "regex_value"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaDomainType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaFractionalPercent": {
        "type": "object",
        "description": "Fraction used where sampling percentages are needed. Example sampled requests.",
        "title": "FractionalPercent",
        "x-displayname": "Fractional Percent.",
        "x-ves-displayorder": "1,2",
        "x-ves-proto-message": "ves.io.schema.FractionalPercent",
        "properties": {
          "denominator": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDenominatorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for denominator.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "numerator": {
            "type": "integer",
            "description": "Sampled parts per denominator. If denominator was 10000, then value of 5 will be 5 in 10000.",
            "title": "numerator",
            "format": "int64",
            "x-displayname": "Numerator",
            "x-ves-example": "5",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Sampled parts per denominator. If denominator was 10000, then value of 5 will be 5 in 10000.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Fraction used where sampling percentages are needed. Example sampled requests.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaFractionalPercent",
          "required_fields": [
            "numerator"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"numerator\": 0\n}",
          "example_yaml": "numerator: 0"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaHeaderManipulationOptionType": {
        "type": "object",
        "description": "HTTP header is a key-value pair.\nThe name acts as key of HTTP header\nThe value acts as the data/value of HTTP header\nExample HTTP header\nHost: user.F5 Distributed cloud.com\nIn the above example, Host is the name or key of HTTP header\nIn the above example, user.F5 Distributed cloud.com is the value of HTTP header.",
        "title": "HeaderManipulationOptionType",
        "x-displayname": "Header Manipulation Option.",
        "x-ves-oneof-field-value_choice": "[\"secret_value\",\"value\"]",
        "x-ves-proto-message": "ves.io.schema.HeaderManipulationOptionType",
        "properties": {
          "append": {
            "type": "boolean",
            "description": "Should the value be appended? If true, the value is appended to existing values.\nDefault value is do not append.",
            "title": "append",
            "format": "boolean",
            "x-displayname": "Append",
            "x-f5xc-description-short": "Should the value be appended? If true, the value is appended to existing values.",
            "x-f5xc-description-medium": "Should the value be appended? If true, the value is appended to existing values. Default value is do not append.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the HTTP header.",
            "title": "name",
            "maxLength": 256,
            "x-displayname": "Name",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "secret_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "value"
            ]
          },
          "value": {
            "type": "string",
            "description": "Exclusive with [secret_value]\nValue of the HTTP header.",
            "title": "value",
            "maxLength": 8096,
            "x-displayname": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-description-short": "Exclusive with [secret_value] Value of the HTTP header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "secret_value"
            ]
          }
        },
        "x-f5xc-description-medium": "HTTP header is a key-value pair. The name acts as key of HTTP header The value acts as the data/value of HTTP header Example HTTP header Host: user.F5 Distributed cloud.com In the above example, Host is the name or key of HTTP header In the above example, user.F5 Distributed cloud.com is the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaHeaderManipulationOptionType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"value\"\n}",
          "example_yaml": "name: value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaJavaScriptMode": {
        "type": "string",
        "description": "Web Client JavaScript Mode.\n\nBot Defense JavaScript for telemetry collection is requested asynchronously, and it is non-cacheable\nBot Defense JavaScript for telemetry collection is requested asynchronously, and it is cacheable\nBot Defense JavaScript for telemetry collection is requested synchronously, and it is non-cacheable\nBot Defense JavaScript for telemetry collection is requested synchronously, and it is cacheable.",
        "title": "JavaScript Mode",
        "enum": [
          "ASYNC_JS_NO_CACHING",
          "ASYNC_JS_CACHING",
          "SYNC_JS_NO_CACHING",
          "SYNC_JS_CACHING"
        ],
        "default": "ASYNC_JS_NO_CACHING",
        "x-displayname": "Web Client JavaScript Mode.",
        "x-ves-proto-enum": "ves.io.schema.JavaScriptMode",
        "x-f5xc-description-medium": "Web Client JavaScript Mode. Bot Defense JavaScript for telemetry collection is requested asynchronously, and it is non-cacheable Bot Defense JavaScript for telemetry collection is requested asynchronously, and it is cacheable Bot Defense JavaScript for telemetry collection is requested...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaJavaScriptMode",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"ASYNC_JS_NO_CACHING\"",
          "example_yaml": "ASYNC_JS_NO_CACHING\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaRegexMatchRewrite": {
        "type": "object",
        "description": "RegexMatchRewrite describes how to match a string and then produce a new string using a\nregular expression and a substitution string.",
        "title": "RegexMatchRewrite",
        "x-displayname": "Regex Match Rewrite.",
        "x-ves-proto-message": "ves.io.schema.RegexMatchRewrite",
        "properties": {
          "pattern": {
            "type": "string",
            "description": "The regular expression used to find portions of a string that should be replaced.",
            "title": "Pattern",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Pattern",
            "x-ves-example": "^/service/([^/]+)(/.*)$.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-example": "^/service/([^/]+)(/.*)$",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.regex": "true"
            },
            "x-f5xc-description-short": "The regular expression used to find portions of a string that should be replaced.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "substitution": {
            "type": "string",
            "description": "The string that should be substituted into matching portions of the subject string during a\nsubstitution operation to produce a new string.",
            "title": "Substitution",
            "maxLength": 256,
            "x-displayname": "Substitution.",
            "x-ves-example": "\\\\2/instance/\\\\1.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "\\\\2/instance/\\\\1",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "The string that should be substituted into matching portions of the subject string during a substitution operation to produce a new string.",
            "x-f5xc-description-medium": "The string that should be substituted into matching portions of the subject string during a substitution operation to produce a new string.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "RegexMatchRewrite describes how to match a string and then produce a new string using a regular expression and a substitution string.",
        "x-f5xc-description-medium": "RegexMatchRewrite describes how to match a string and then produce a new string using a regular expression and a substitution string.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaRegexMatchRewrite",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaRetryBackOff": {
        "type": "object",
        "description": "Specifies parameters that control retry back off.",
        "title": "RetryBackOff",
        "x-displayname": "Retry BackOff Interval.",
        "x-ves-displayorder": "1,2",
        "x-ves-proto-message": "ves.io.schema.RetryBackOff",
        "properties": {
          "base_interval": {
            "type": "integer",
            "description": "Specifies the base interval between retries in milliseconds.",
            "title": "base_interval",
            "format": "int64",
            "x-displayname": "Base Retry Interval.",
            "x-ves-example": "5",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gt": "0"
            },
            "x-f5xc-description-short": "Specifies the base interval between retries in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_interval": {
            "type": "integer",
            "description": "Specifies the maximum interval between retries in milliseconds.\nThis parameter is optional, but must be greater than or equal\nto the base_interval if set. The default is 10 times the base_interval.",
            "title": "max_interval",
            "format": "int64",
            "x-displayname": "Maximum Retry Interval.",
            "x-ves-example": "60",
            "x-f5xc-example": "60",
            "x-f5xc-description-short": "Specifies the maximum interval between retries in milliseconds.",
            "x-f5xc-description-medium": "Specifies the maximum interval between retries in milliseconds. This parameter is optional, but must be greater than or equal to the base_interval if set. The default is 10 times the base_interval.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies parameters that control retry back off.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaRetryBackOff",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaRetryPolicyType": {
        "type": "object",
        "description": "Retry policy configuration for route destination.",
        "title": "RetryPolicyType",
        "x-displayname": "Retry Policy.",
        "x-ves-displayorder": "1,6,2,3,4,5",
        "x-ves-proto-message": "ves.io.schema.RetryPolicyType",
        "properties": {
          "back_off": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRetryBackOff"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "num_retries": {
            "type": "integer",
            "description": "Specifies the allowed number of retries. Defaults to 1.\nRetries can be done any number of times. An exponential back-off algorithm\nis used between each retry.",
            "title": "num_retries",
            "format": "int64",
            "x-displayname": "Number of Retries.",
            "x-ves-example": "3",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "8"
            },
            "x-f5xc-example": "3",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "8"
            },
            "x-f5xc-description-short": "Maximum number of retry attempts. Default: 1.",
            "x-f5xc-description-medium": "Specifies the allowed number of retries. Defaults to 1. Retries can be done any number of times. An exponential back-off algorithm is used between each retry.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 8,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "per_try_timeout": {
            "type": "integer",
            "description": "Specifies a non-zero timeout per retry attempt. In milliseconds.",
            "title": "per_try_timeout",
            "format": "int64",
            "x-displayname": "Per Try Timeout.",
            "x-ves-example": "1000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "1000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "Specifies a non-zero timeout per retry attempt. In milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retriable_status_codes": {
            "type": "array",
            "description": "HTTP status codes that should trigger a retry in addition to those specified by retry_on.",
            "title": "Retriable status Code",
            "maxItems": 16,
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "x-displayname": "Status Code to Retry.",
            "x-ves-example": "403",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "403",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "HTTP status codes that should trigger a retry in addition to those specified by retry_on.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retry_condition": {
            "type": "array",
            "description": "Specifies the conditions under which retry takes place.\nRetries can be on different types of condition depending on application requirements.\nFor example, network failure, all 5xx response codes, idempotent 4xx response codes, etc\n\nThe possible values are\n\n\"5xx\" : Retry will be done if the upstream server responds with any 5xx response code,\nor does not respond at all (disconnect/reset/read timeout).\n\n\"gateway-error\" : Retry will be done only if the upstream server responds with 502, 503 or\n504 responses (Included in 5xx)\n\n\"connect-failure\" : Retry will be done if the request fails because of a connection failure to the\nupstream server (connect timeout, etc.). (Included in 5xx)\n\n\"refused-stream\" : Retry is done if the upstream server resets the stream with a REFUSED_STREAM\nerror code (Included in 5xx)\n\n\"retriable-4xx\" : Retry is done if the upstream server responds with a retriable 4xx response code.\nThe only response code in this category is HTTP CONFLICT (409)\n\n\"retriable-status-codes\" : Retry is done if the upstream server responds with any response code\nmatching one defined in retriable_status_codes field\n\n\"reset\" : Retry is done if the upstream server does not respond at all\n(disconnect/reset/read timeout.)",
            "title": "retry_condition",
            "minItems": 1,
            "maxItems": 7,
            "items": {
              "type": "string"
            },
            "x-displayname": "Retry Condition.",
            "x-ves-example": "5xx",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"5xx\\\",\\\"gateway-error\\\",\\\"connect-failure\\\",\\\"refused-stream\\\",\\\"retriable-4xx\\\",\\\"retriable-status-codes\\\",\\\"reset\\\"]",
              "ves.io.schema.rules.repeated.max_items": "7",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "5xx",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"5xx\\\",\\\"gateway-error\\\",\\\"connect-failure\\\",\\\"refused-stream\\\",\\\"retriable-4xx\\\",\\\"retriable-status-codes\\\",\\\"reset\\\"]",
              "ves.io.schema.rules.repeated.max_items": "7",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Conditions that trigger request retry (5xx, connection failures).",
            "x-f5xc-description-medium": "Specifies the conditions under which retry takes place. Retries can be on different types of condition depending on application requirements. For example, network failure, all 5xx response codes, idempotent 4xx response codes, etc The possible values are \"5xx\" : Retry will be done if the...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 7,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Retry policy configuration for route destination.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaRetryPolicyType",
          "required_fields": [
            "retry_condition"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"retry_condition\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "retry_condition:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaSetCookieValueOption": {
        "type": "object",
        "description": "Cookie name and its attribute values in set-cookie header.",
        "title": "SetCookieValueOption",
        "x-displayname": "Set-Cookie Value Option.",
        "x-ves-oneof-field-domain_choice": "[\"add_domain\",\"ignore_domain\"]",
        "x-ves-oneof-field-expiry_choice": "[\"add_expiry\",\"ignore_expiry\"]",
        "x-ves-oneof-field-httponly_choice": "[\"add_httponly\",\"ignore_httponly\"]",
        "x-ves-oneof-field-max_age_choice": "[\"ignore_max_age\",\"max_age_value\"]",
        "x-ves-oneof-field-partitioned_choice": "[\"add_partitioned\",\"ignore_partitioned\"]",
        "x-ves-oneof-field-path_choice": "[\"add_path\",\"ignore_path\"]",
        "x-ves-oneof-field-samesite_choice": "[\"ignore_samesite\",\"samesite_lax\",\"samesite_none\",\"samesite_strict\"]",
        "x-ves-oneof-field-secure_choice": "[\"add_secure\",\"ignore_secure\"]",
        "x-ves-oneof-field-value_choice": "[\"ignore_value\",\"secret_value\",\"value\"]",
        "x-ves-proto-message": "ves.io.schema.SetCookieValueOption",
        "properties": {
          "add_domain": {
            "type": "string",
            "description": "Exclusive with [ignore_domain]\nAdd domain attribute.",
            "title": "add_domain",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Add Domain.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostname": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "Exclusive with [ignore_domain] Add domain attribute.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "format": "hostname",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_domain"
            ]
          },
          "add_expiry": {
            "type": "string",
            "description": "Exclusive with [ignore_expiry]\nAdd expiry attribute.",
            "title": "add_expiry",
            "maxLength": 256,
            "x-displayname": "Add expiry.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [ignore_expiry] Add expiry attribute.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_expiry"
            ]
          },
          "add_httponly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for add httponly.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_httponly"
            ]
          },
          "add_partitioned": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for add partitioned.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_partitioned"
            ]
          },
          "add_path": {
            "type": "string",
            "description": "Exclusive with [ignore_path]\nAdd path attribute.",
            "title": "add_path",
            "maxLength": 256,
            "x-displayname": "Add path",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-description-short": "Exclusive with [ignore_path] Add path attribute.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_path"
            ]
          },
          "add_secure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_secure"
            ]
          },
          "ignore_domain": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore domain.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_domain"
            ]
          },
          "ignore_expiry": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore expiry.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_expiry"
            ]
          },
          "ignore_httponly": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore httponly.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_httponly"
            ]
          },
          "ignore_max_age": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore max age.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_age_value"
            ]
          },
          "ignore_partitioned": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore partitioned.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_partitioned"
            ]
          },
          "ignore_path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_path"
            ]
          },
          "ignore_samesite": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "samesite_lax",
              "samesite_none",
              "samesite_strict"
            ]
          },
          "ignore_secure": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "add_secure"
            ]
          },
          "ignore_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ignore value.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "secret_value",
              "value"
            ]
          },
          "max_age_value": {
            "type": "integer",
            "description": "Exclusive with [ignore_max_age]\nAdd max age attribute.",
            "title": "add_max_age",
            "format": "int32",
            "x-displayname": "Add Max Age.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "34560000"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "34560000"
            },
            "x-f5xc-description-short": "Exclusive with [ignore_max_age] Add max age attribute.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 34560000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_max_age"
            ]
          },
          "name": {
            "type": "string",
            "description": "Name of the cookie in Cookie header.",
            "title": "name",
            "maxLength": 256,
            "x-displayname": "Name",
            "x-ves-example": "Value",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.cookie_name": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.cookie_name": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "overwrite": {
            "type": "boolean",
            "description": "Should the value be overwritten? If true, the value is overwritten to existing values.\nDefault value is do not overwrite.",
            "title": "overwrite",
            "format": "boolean",
            "x-displayname": "Overwrite",
            "x-f5xc-description-short": "Should the value be overwritten? If true, the value is overwritten to existing values.",
            "x-f5xc-description-medium": "Should the value be overwritten? If true, the value is overwritten to existing values. Default value is do not overwrite.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "samesite_lax": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_none",
              "samesite_strict"
            ]
          },
          "samesite_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_lax",
              "samesite_strict"
            ]
          },
          "samesite_strict": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_samesite",
              "samesite_lax",
              "samesite_none"
            ]
          },
          "secret_value": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ignore_value",
              "value"
            ]
          },
          "value": {
            "type": "string",
            "description": "Exclusive with [ignore_value secret_value]\nValue of the Cookie header.",
            "title": "value",
            "maxLength": 8096,
            "x-displayname": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-description-short": "Exclusive with [ignore_value secret_value] Value of the Cookie header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "ignore_value",
              "secret_value"
            ]
          }
        },
        "x-f5xc-description-short": "Cookie name and its attribute values in set-cookie header.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaSetCookieValueOption",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"value\"\n}",
          "example_yaml": "name: value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTLSCoalescingOptions": {
        "type": "object",
        "description": "TLS connection coalescing configuration (not compatible with mTLS)",
        "title": "TLSCoalescingOptions",
        "x-displayname": "TLS Coalescing OPTIONS.",
        "x-ves-oneof-field-coalescing_choice": "[\"default_coalescing\",\"strict_coalescing\"]",
        "x-ves-proto-message": "ves.io.schema.TLSCoalescingOptions",
        "properties": {
          "default_coalescing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default coalescing.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "strict_coalescing"
            ]
          },
          "strict_coalescing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for strict coalescing.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_coalescing"
            ]
          }
        },
        "x-f5xc-description-short": "TLS connection coalescing configuration (not compatible with mTLS).",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTLSCoalescingOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaXfccElement": {
        "type": "string",
        "description": "X-Forwarded-Client-Cert custom cookie elements\n\nThe entire client certificate in URL encoded PEM format.\nThe entire client certificate chain (including the leaf certificate) in URL encoded PEM format.\nThe Subject field of the current client certificate. The value is always double-quoted.\nThe URI type Subject Alternative Name field of the current client certificate.\nA client certificate may contain multiple URI type Subject Alternative Names,\neach will be a separate key-value pair.\nThe DNS type Subject Alternative Name field of the current client certificate.\nA client certificate may contain multiple DNS type Subject Alternative Names,\neach will be a separate key-value pair.",
        "title": "XfccElement",
        "enum": [
          "XFCC_NONE",
          "XFCC_CERT",
          "XFCC_CHAIN",
          "XFCC_SUBJECT",
          "XFCC_URI",
          "XFCC_DNS"
        ],
        "default": "XFCC_NONE",
        "x-displayname": "XFCC Elements.",
        "x-ves-proto-enum": "ves.io.schema.XfccElement",
        "x-f5xc-description-short": "X-Forwarded-Client-Cert custom cookie elements The entire client certificate in URL encoded PEM format.",
        "x-f5xc-description-medium": "X-Forwarded-Client-Cert custom cookie elements The entire client certificate in URL encoded PEM format. The entire client certificate chain (including the leaf certificate) in URL encoded PEM format. The Subject field of the current client certificate.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaXfccElement",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"XFCC_NONE\"",
          "example_yaml": "XFCC_NONE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaclusterHttp1ProtocolOptions": {
        "type": "object",
        "description": "HTTP/1.1 Protocol OPTIONS for upstream connections.",
        "title": "Http1ProtocolOptions",
        "x-displayname": "HTTP/1.1 Protocol OPTIONS.",
        "x-ves-proto-message": "ves.io.schema.cluster.Http1ProtocolOptions",
        "properties": {
          "header_transformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHeaderTransformationType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "HTTP/1.1 Protocol OPTIONS for upstream connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaclusterHttp1ProtocolOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemados_mitigationGetSpecType": {
        "type": "object",
        "description": "GET DoS Mitigation.",
        "title": "Get DoS Mitigation",
        "x-displayname": "GET DoS Mitigation.",
        "x-ves-oneof-field-expiration": "[\"expiration_never\",\"expiration_timestamp\",\"expiration_ttl\"]",
        "x-ves-proto-message": "ves.io.schema.dos_mitigation.GetSpecType",
        "properties": {
          "as_numbers": {
            "type": "array",
            "description": "An unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy.",
            "maxItems": 64,
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "x-displayname": "AS Numbers.",
            "x-ves-example": "[713, 7932, 847325, 4683, 15269, 1000001]",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[713, 7932, 847325, 4683, 15269, 1000001]",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy.",
            "x-f5xc-description-medium": "Unordered set of RFC 6793 defined 4-byte AS numbers that can be used to create allow or deny lists for use in network policy or service policy.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "countries": {
            "type": "array",
            "description": "Sources that are located in one of the countries in the given list.",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyCountryCode"
            },
            "x-displayname": "Country List.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Sources that are located in one of the countries in the given list.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "destination": {
            "allOf": [
              {
                "$ref": "#/components/schemas/dos_mitigationDestination"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for destination.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "expiration_never": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for expiration never.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "expiration_timestamp",
              "expiration_ttl"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "Exclusive with [expiration_never expiration_ttl]\nThis mitigation will expire at the given timestamp and will be removed from the system afterwards.",
            "format": "date-time",
            "x-displayname": "Expiration Time.",
            "x-f5xc-description-short": "Exclusive with [expiration_never expiration_ttl] This mitigation will expire at the given timestamp and will be removed from the system afterwards.",
            "x-f5xc-description-medium": "Exclusive with [expiration_never expiration_ttl] This mitigation will expire at the given timestamp and will be removed from the system afterwards.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "expiration_never",
              "expiration_ttl"
            ]
          },
          "expiration_ttl": {
            "type": "integer",
            "description": "Exclusive with [expiration_never expiration_timestamp]\nMitigation will expire this number of seconds after its creation time.",
            "format": "int64",
            "x-displayname": "TTL in Seconds.",
            "x-ves-example": "600",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "172800"
            },
            "x-f5xc-example": "600",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "172800"
            },
            "x-f5xc-description-short": "Exclusive with [expiration_never expiration_timestamp] Mitigation will expire this number of seconds after its creation time.",
            "x-f5xc-description-medium": "Exclusive with [expiration_never expiration_timestamp] Mitigation will expire this number of seconds after its creation time.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 172800,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "expiration_never",
              "expiration_timestamp"
            ]
          },
          "ip_prefixes": {
            "type": "array",
            "description": "IP Address prefix in string format. String must contain both prefix and prefix-length.\nAccepts both IPv4 and IPv6 prefixes.",
            "maxItems": 1024,
            "items": {
              "type": "string"
            },
            "x-displayname": "IP Prefixes.",
            "x-ves-example": "[192.0.2.0/24, 192.0.2.0/24, 4c6f:5ce7:df51:97f2:1619:ffff:b9f3:da35/126]",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ip_prefix": "true",
              "ves.io.schema.rules.repeated.max_items": "1024",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[192.0.2.0/24, 192.0.2.0/24, 4c6f:5ce7:df51:97f2:1619:ffff:b9f3:da35/126]",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ip_prefix": "true",
              "ves.io.schema.rules.repeated.max_items": "1024",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "IP Address prefix in string format. String must contain both prefix and prefix-length.",
            "x-f5xc-description-medium": "IP Address prefix in string format. String must contain both prefix and prefix-length. Accepts both IPv4 and IPv6 prefixes.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1024,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "paths": {
            "type": "array",
            "description": "A list of exact path values to match the input HTTP path against.",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Paths",
            "x-ves-example": "['/API/web/namespaces/project179/users/user1', '/API/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/API/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/project443/virtual_host_101']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['/api/web/namespaces/project179/users/user1', '/api/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/api/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/project443/virtual_host_101']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact path values to match the input HTTP path against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprints": {
            "type": "array",
            "description": "A list of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against.",
            "maxItems": 64,
            "items": {
              "type": "string"
            },
            "x-displayname": "TLS Fingerprints.",
            "x-ves-example": "1aa7bf8b97e540ca5edd75f7b8384bfa.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "1aa7bf8b97e540ca5edd75f7b8384bfa",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemados_mitigationType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemados_mitigationGetSpecType",
          "required_fields": [
            "as_numbers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"as_numbers\": [\n    0\n  ]\n}",
          "example_yaml": "as_numbers:\n- 0"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemados_mitigationType": {
        "type": "string",
        "description": "DoS Mitigation can either be manually added by a user (SRE), or can be automatically generated based on\n\nMITIGATION_MANUAL\nMITIGATION_AUTOMATIC.",
        "title": "Type",
        "enum": [
          "MITIGATION_MANUAL",
          "MITIGATION_AUTOMATIC"
        ],
        "default": "MITIGATION_MANUAL",
        "x-displayname": "DoS Mitigation Type.",
        "x-ves-proto-enum": "ves.io.schema.dos_mitigation.Type",
        "x-f5xc-description-short": "DoS Mitigation can either be manually added by a user (SRE), or can be automatically generated based on MITIGATION_MANUAL MITIGATION_AUTOMATIC.",
        "x-f5xc-description-medium": "DoS Mitigation can either be manually added by a user (SRE), or can be automatically generated based on MITIGATION_MANUAL MITIGATION_AUTOMATIC.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemados_mitigationType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"MITIGATION_MANUAL\"",
          "example_yaml": "MITIGATION_MANUAL\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "A header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each\nheader name in the original HTTP request.\nA header matcher can check for one of the following:\n* Presence or absence of the header in the input\n* At least one of the values for the header in the input satisfies the MatcherType item.",
        "title": "HeaderMatcherType",
        "x-displayname": "Header Matcher.",
        "x-ves-displayorder": "1,6,4",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.HeaderMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Header Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "name": {
            "type": "string",
            "description": "A case-insensitive HTTP header name.",
            "title": "name",
            "maxLength": 63,
            "x-displayname": "Header Name.",
            "x-ves-example": "Accept-Encoding.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "Accept-Encoding",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_header_field": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "byteLength": {
                "max": 256
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Header matcher specifies the name of a single HTTP header and the criteria for the input request to match it.",
        "x-f5xc-description-medium": "Header matcher specifies the name of a single HTTP header and the criteria for the input request to match it. The input has a list of actual values for each header name in the original HTTP request. A header matcher can check for one of the following: * Presence or absence of the header in the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyHeaderMatcherType",
          "required_fields": [
            "name"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"Accept-Encoding\"\n}",
          "example_yaml": "name: Accept-Encoding"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyPathMatcherType": {
        "type": "object",
        "description": "A path matcher specifies multiple criteria for matching an HTTP path string. The match is considered successful if any of the criteria are satisfied. The set\nof supported match criteria includes a list of path prefixes, a list of exact path values and a list of regular expressions.",
        "title": "PathMatcherType",
        "x-displayname": "Path Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.PathMatcherType",
        "properties": {
          "encoded_path_matcher": {
            "type": "boolean",
            "description": "Match against the encoded, escaped path.",
            "title": "Encoded_Path",
            "format": "boolean",
            "x-displayname": "Match Encoded Path.",
            "x-ves-example": "Match \\\"/path/%20another%20path\\\" instead of default \\\"/path/ another path\\\"",
            "x-f5xc-example": "\"match \\\"/path/%20another%20path\\\" instead of default \\\"/path/ another path\\\"\"",
            "x-f5xc-description-short": "Match against the encoded, escaped path.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "exact_values": {
            "type": "array",
            "description": "A list of exact path values to match the input HTTP path against.",
            "title": "exact values",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Exact Values.",
            "x-ves-example": "['/API/web/namespaces/project179/users/user1', '/API/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/API/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/project443/virtual_host_101']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.http_path": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['/api/web/namespaces/project179/users/user1', '/api/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/accounting/bgps', '/api/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/project443/virtual_host_101']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.http_path": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact path values to match the input HTTP path against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Path Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "prefix_values": {
            "type": "array",
            "description": "A list of path prefix values to match the input HTTP path against.",
            "title": "prefix values",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Prefix Values.",
            "x-ves-example": "['/API/web/namespaces/project179/users/', '/API/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/', '/API/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.http_path": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['/api/web/namespaces/project179/users/', '/api/config/configconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfigconfignamespaces/', '/api/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.http_path": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of path prefix values to match the input HTTP path against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "regex_values": {
            "type": "array",
            "description": "A list of regular expressions to match the input HTTP path against.",
            "title": "regex values",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Regex Values.",
            "x-ves-example": "['^/API/web/namespaces/abc/users/([a-z]([-a-z0-9]*[a-z0-9])?)$', '/API/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/proj404/virtual_hosts/([a-z]([-a-z0-9]*[a-z0-9])?)$']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['^/api/web/namespaces/abc/users/([a-z]([-a-z0-9]*[a-z0-9])?)$', '/api/data/datadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatadatanamespaces/proj404/virtual_hosts/([a-z]([-a-z0-9]*[a-z0-9])?)$']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.items.string.regex": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of regular expressions to match the input HTTP path against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "suffix_values": {
            "type": "array",
            "description": "A list of path suffix values to match the input HTTP path against.",
            "title": "Suffix values",
            "maxItems": 64,
            "items": {
              "type": "string",
              "maxLength": 64
            },
            "x-displayname": "Suffix Values.",
            "x-ves-example": "['.exe', '.shtml', '.wmz']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "64",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['.exe', '.shtml', '.wmz']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "64",
              "ves.io.schema.rules.repeated.items.string.not_empty": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of path suffix values to match the input HTTP path against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "transformers": {
            "type": "array",
            "description": "An ordered list of transformers (starting from index 0) to be applied to the path before matching.",
            "title": "transformers",
            "maxItems": 9,
            "items": {
              "$ref": "#/components/schemas/policyTransformer"
            },
            "x-displayname": "Transformers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "9",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "\"[BASE64_DECODE, LOWER_CASE]",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "9",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Ordered list of transformers (starting from index 0) to be applied to the path before matching.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 9,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Path matcher specifies multiple criteria for matching an HTTP path string. The match is considered successful if any of the criteria are satisfied.",
        "x-f5xc-description-medium": "Path matcher specifies multiple criteria for matching an HTTP path string. The match is considered successful if any of the criteria are satisfied. The set of supported match criteria includes a list of path prefixes, a list of exact path values and a list of regular expressions.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyPathMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer": {
        "type": "object",
        "description": "A query parameter matcher specifies the name of a single query parameter and the criteria for the input request to match it. The input has a list of actual\nvalues for each query parameter name in the original HTTP request.\nA query parameter matcher can check for one of the following:\n* Presence or absence of the query parameter in the input\n* At least one of the values for the query parameter in the input satisfies the MatcherType item.",
        "title": "QueryParameterMatcherType",
        "x-displayname": "Query Parameter Matcher.",
        "x-ves-displayorder": "1,6,4",
        "x-ves-oneof-field-match": "[\"check_not_present\",\"check_present\",\"item\"]",
        "x-ves-proto-message": "ves.io.schema.policy.QueryParameterMatcherType",
        "properties": {
          "check_not_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check not present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_present",
              "item"
            ]
          },
          "check_present": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for check present.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "item"
            ]
          },
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Query Parameter Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "item": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 26,
            "minLength": 15,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "x-f5xc-conflicts-with": [
              "check_not_present",
              "check_present"
            ]
          },
          "key": {
            "type": "string",
            "description": "A case-sensitive HTTP query parameter name.",
            "title": "key",
            "maxLength": 256,
            "x-displayname": "Query Parameter Name.",
            "x-ves-example": "Sourceid",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "sourceid",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Case-sensitive HTTP query parameter name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 7,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Query parameter matcher specifies the name of a single query parameter and the criteria for the input request to match it.",
        "x-f5xc-description-medium": "Query parameter matcher specifies the name of a single query parameter and the criteria for the input request to match it. The input has a list of actual values for each query parameter name in the original HTTP request. A query parameter matcher can check for one of the following: * Presence or...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyQueryParameterMatcherType",
          "required_fields": [
            "key"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"key\": \"sourceid\"\n}",
          "example_yaml": "key: sourceid"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemarouteJavaScriptLocation": {
        "type": "string",
        "description": "All inside networks.\n\nInsert JavaScript after <HEAD> tag\nInsert JavaScript after </title> tag.\nInsert JavaScript before first tag.",
        "title": "JavaScriptLocation",
        "enum": [
          "AFTER_HEAD",
          "AFTER_TITLE_END",
          "BEFORE_SCRIPT"
        ],
        "default": "AFTER_HEAD",
        "x-displayname": "JavaScript Location.",
        "x-ves-proto-enum": "ves.io.schema.route.JavaScriptLocation",
        "x-f5xc-description-short": "All inside networks. Insert JavaScript after <HEAD> tag Insert JavaScript after </title> tag.",
        "x-f5xc-description-medium": "All inside networks. Insert JavaScript after <HEAD> tag Insert JavaScript after </title> tag. Insert JavaScript before first tag.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemarouteJavaScriptLocation",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"AFTER_HEAD\"",
          "example_yaml": "AFTER_HEAD\n..."
        },
        "x-f5xc-cli-domain": "network",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Route configuration is platform-level routing"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaviewsDownstreamTlsParamsType": {
        "type": "object",
        "description": "Inline TLS parameters.",
        "title": "DownstreamTlsParamsType",
        "x-displayname": "Inline TLS Parameters.",
        "x-ves-oneof-field-mtls_choice": "[\"no_mtls\",\"use_mtls\"]",
        "x-ves-proto-message": "ves.io.schema.views.DownstreamTlsParamsType",
        "properties": {
          "no_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_mtls"
            ]
          },
          "tls_certificates": {
            "type": "array",
            "description": "Users can add one or more certificates that share the same set of domains.\nFor example, domain.com and *.domain.com - but use different signature algorithms.",
            "title": "tls_certificates",
            "minItems": 1,
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaTlsCertificateType"
            },
            "x-displayname": "TLS Certificates.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-description-short": "Users can add one or more certificates that share the same set of domains.",
            "x-f5xc-description-medium": "Users can add one or more certificates that share the same set of domains. For example, domain.com and *.domain.com - but use different signature algorithms.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "tls_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsTlsConfig"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsDownstreamTlsValidationContext"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_mtls"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaviewsDownstreamTlsParamsType",
          "required_fields": [
            "tls_certificates"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"tls_certificates\": [\n    {\n      \"certificate_url\": \"value\"\n    }\n  ]\n}",
          "example_yaml": "tls_certificates:\n- certificate_url: value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemavirtual_hostHttp1ProtocolOptions": {
        "type": "object",
        "description": "HTTP/1.1 Protocol OPTIONS for downstream connections.",
        "title": "Http1ProtocolOptions",
        "x-displayname": "HTTP/1.1 Protocol OPTIONS.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.Http1ProtocolOptions",
        "properties": {
          "header_transformation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHeaderTransformationType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "HTTP/1.1 Protocol OPTIONS for downstream connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemavirtual_hostHttp1ProtocolOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemavirtual_host_dns_infoGlobalSpecType": {
        "type": "object",
        "description": "Shape of the virtual host DNS info global specification.",
        "title": "Global Specification for Virtual Host DNS info",
        "x-displayname": "Global Spec.",
        "x-ves-proto-message": "ves.io.schema.virtual_host_dns_info.GlobalSpecType",
        "properties": {
          "dns_info": {
            "type": "array",
            "description": "DNS information for this virtual host.",
            "title": "DNS information",
            "items": {
              "$ref": "#/components/schemas/virtual_host_dns_infoDnsInfo"
            },
            "x-displayname": "DNS Information.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "host_name": {
            "type": "string",
            "description": "Host name to be used for the virtual host.",
            "title": "host name",
            "x-displayname": "Host Name",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Host name to be used for the virtual host.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_host": {
            "type": "array",
            "description": "Reference to virtual host object to which this information applies.",
            "title": "virtual host",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Virtual Host.",
            "x-f5xc-description-short": "Reference to virtual host object to which this information applies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of the virtual host DNS info global specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemavirtual_host_dns_infoGlobalSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "service_policy_ruleChallengeRuleSpec": {
        "type": "object",
        "description": "A Challenge Rule consists of an unordered list of predicates and an action. The predicates are evaluated against a set of input fields that are extracted from\nor derived from an L7 request API. A request API is considered to match the rule if all predicates in the rule evaluate to true for that request. Any\npredicates that are not specified in a rule are implicitly considered to be true. If a request API matches a challenge rule, the configured challenge is\nenforced.",
        "title": "Challenge Rule Spec",
        "x-displayname": "Challenge Rule Specification.",
        "x-ves-oneof-field-asn_choice": "[\"any_asn\",\"asn_list\",\"asn_matcher\"]",
        "x-ves-oneof-field-challenge_action": "[\"disable_challenge\",\"enable_captcha_challenge\",\"enable_javascript_challenge\"]",
        "x-ves-oneof-field-client_choice": "[\"any_client\",\"client_selector\"]",
        "x-ves-oneof-field-ip_choice": "[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-oneof-field-tls_fingerprint_choice": "[\"tls_fingerprint_matcher\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.ChallengeRuleSpec",
        "properties": {
          "any_asn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher"
            ]
          },
          "any_client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_selector"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "arg_matchers": {
            "type": "array",
            "description": "A list of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances\nof ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.\nNote that all specified arg matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyArgMatcherType"
            },
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all POST args that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances of ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_matcher"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_list"
            ]
          },
          "body_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client"
            ]
          },
          "cookie_matchers": {
            "type": "array",
            "description": "A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyCookieMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all cookies that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_captcha_challenge",
              "enable_javascript_challenge"
            ]
          },
          "domain_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for domain matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_challenge",
              "enable_javascript_challenge"
            ]
          },
          "enable_javascript_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_challenge",
              "enable_captcha_challenge"
            ]
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "format": "date-time",
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_matcher"
            ]
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Challenge Rule consists of an unordered list of predicates and an action.",
        "x-f5xc-description-medium": "Challenge Rule consists of an unordered list of predicates and an action. The predicates are evaluated against a set of input fields that are extracted from or derived from an L7 request API. A request API is considered to match the rule if all predicates in the rule evaluate to true for that...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleChallengeRuleSpec",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy": {
        "type": "object",
        "description": "This defines a way to advertise a VIP on specific sites.",
        "title": "AdvertiseWhere",
        "x-displayname": "Advertise Custom.",
        "x-ves-proto-message": "ves.io.schema.views.AdvertiseCustom",
        "properties": {
          "advertise_where": {
            "type": "array",
            "description": "Where should this load balancer be available.",
            "title": "Advertise Where",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/viewsWhereType__ves_io_schema_views_bigip_http_proxy"
            },
            "x-displayname": "List of Sites to Advertise.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Where should this load balancer be available.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines a way to advertise a VIP on specific sites.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsAdvertiseCustom",
          "required_fields": [
            "advertise_where"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"advertise_where\": [\n    {}\n  ]\n}",
          "example_yaml": "advertise_where:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsAdvertisePublic": {
        "type": "object",
        "description": "This defines a way to advertise a load balancer on public. If optional public_ip is provided, it will only be advertised on RE sites where that public_ip is available.",
        "title": "AdvertisePublic",
        "x-displayname": "Advertise Public.",
        "x-ves-proto-message": "ves.io.schema.views.AdvertisePublic",
        "properties": {
          "public_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "public_ip",
                "field_path": "public_ip",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Defines a way to advertise a load balancer on public.",
        "x-f5xc-description-medium": "Defines a way to advertise a load balancer on public. If optional public_ip is provided, it will only be advertised on RE sites where that public_ip is available.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsAdvertisePublic",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsApiEndpointWithSchema": {
        "type": "object",
        "description": "API endpoint and its schema.",
        "title": "API Endpoint With Schema",
        "x-displayname": "API Endpoint With Schema.",
        "x-ves-proto-message": "ves.io.schema.views.ApiEndpointWithSchema",
        "properties": {
          "api_operation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsApiOperation"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "schema_json": {
            "type": "string",
            "description": "The schema of the API endpoint.",
            "title": "Schema JSON",
            "maxLength": 20000,
            "x-displayname": "Schema JSON.",
            "x-ves-example": "{}",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "20000"
            },
            "x-f5xc-example": "{}",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "20000"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 20000,
              "byteLength": {
                "max": 20000
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsApiEndpointWithSchema",
          "required_fields": [
            "schema_json"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"schema_json\": \"{}\"\n}",
          "example_yaml": "schema_json: '{}'"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsApiOperation": {
        "type": "object",
        "description": "API operation according to OpenAPI specification.",
        "title": "ApiOperation",
        "x-displayname": "API Operation.",
        "x-ves-proto-message": "ves.io.schema.views.ApiOperation",
        "properties": {
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "type": "string",
            "description": "An endpoint path, as specified in OpenAPI, including parameters.\nThe path should comply with RFC 3986 and may have parameters according to OpenAPI specification.",
            "title": "path",
            "minLength": 1,
            "maxLength": 1024,
            "x-displayname": "Path",
            "x-ves-example": "/API/users/{userid}",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "1024",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/api/users/{userid}",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_bytes": "1024",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-description-short": "Endpoint path, as specified in OpenAPI, including parameters.",
            "x-f5xc-description-medium": "Endpoint path, as specified in OpenAPI, including parameters. The path should comply with RFC 3986 and may have parameters according to OpenAPI specification.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 1024,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "byteLength": {
                "max": 1024,
                "min": 1
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "API operation according to OpenAPI specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsApiOperation",
          "required_fields": [
            "path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/api/users/{userid}\"\n}",
          "example_yaml": "path: /api/users/{userid}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsCustomCiphers": {
        "type": "object",
        "description": "This defines TLS protocol config including min/max versions and allowed ciphers.",
        "title": "CustomCiphers",
        "x-displayname": "Custom Ciphers.",
        "x-ves-displayorder": "1,2,3",
        "x-ves-proto-message": "ves.io.schema.views.CustomCiphers",
        "properties": {
          "cipher_suites": {
            "type": "array",
            "description": "The TLS listener will only support the specified cipher list.",
            "title": "cipher_suites",
            "items": {
              "type": "string"
            },
            "x-displayname": "Cipher Suites.",
            "x-ves-example": "TLS_AES_128_GCM_SHA256.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "TLS_AES_128_GCM_SHA256",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "The TLS listener will only support the specified cipher list.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "max_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "TLS_AUTO",
                "TLS11",
                "TLS12",
                "TLS13"
              ],
              "default": "TLS_AUTO",
              "description": "Maximum TLS version for custom security"
            }
          },
          "min_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "TLS_AUTO",
                "TLS11",
                "TLS12",
                "TLS13"
              ],
              "default": "TLS_AUTO",
              "description": "Minimum TLS version for custom security"
            }
          }
        },
        "x-f5xc-description-short": "Defines TLS protocol config including min/max versions and allowed ciphers.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsCustomCiphers",
          "required_fields": [
            "cipher_suites"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"cipher_suites\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "cipher_suites:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsDownstreamTLSCertsParams": {
        "type": "object",
        "description": "Select TLS Parameters and Certificates.",
        "title": "DownstreamTLSCertsParams",
        "x-displayname": "TLS Parameters.",
        "x-ves-oneof-field-mtls_choice": "[\"no_mtls\",\"use_mtls\"]",
        "x-ves-proto-message": "ves.io.schema.views.DownstreamTLSCertsParams",
        "properties": {
          "certificates": {
            "type": "array",
            "description": "Select one or more certificates with any domain names.",
            "title": "certificates",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Certificates.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Select one or more certificates with any domain names.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "no_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_mtls"
            ]
          },
          "tls_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsTlsConfig"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsDownstreamTlsValidationContext"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_mtls"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsDownstreamTLSCertsParams",
          "required_fields": [
            "certificates"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"certificates\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "certificates:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsDownstreamTlsValidationContext": {
        "type": "object",
        "description": "Validation context for downstream client TLS connections.",
        "title": "DownstreamTlsValidationContext",
        "x-displayname": "Clients TLS validation context.",
        "x-ves-oneof-field-crl_choice": "[\"crl\",\"no_crl\"]",
        "x-ves-oneof-field-trusted_ca_choice": "[\"trusted_ca\",\"trusted_ca_url\"]",
        "x-ves-oneof-field-xfcc_header": "[\"xfcc_disabled\",\"xfcc_options\"]",
        "x-ves-proto-message": "ves.io.schema.views.DownstreamTlsValidationContext",
        "properties": {
          "client_certificate_optional": {
            "type": "boolean",
            "description": "Client certificate is optional. If the client has provided a certificate,\nthe load balancer will verify it. If certification verification fails,\nthe connection will be terminated. If the client does not provide a certificate,\nthe connection will be accepted.",
            "title": "client_certificate_optional",
            "format": "boolean",
            "x-displayname": "Client Certificate Optional.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Client certificate is optional. If the client has provided a certificate, the load balancer will verify it.",
            "x-f5xc-description-medium": "Client certificate is optional. If the client has provided a certificate, the load balancer will verify it. If certification verification fails, the connection will be terminated.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "crl": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_crl"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "crl",
                "field_path": "crl",
                "gated_by": {
                  "choice": "crl_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "no_crl": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "crl"
            ]
          },
          "trusted_ca": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca_url"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "certificate",
                "field_path": "trusted_ca",
                "gated_by": {
                  "choice": "trusted_ca_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "trusted_ca_url": {
            "type": "string",
            "description": "Exclusive with [trusted_ca]\nUpload a Root CA Certificate specifically for this Load Balancer.",
            "title": "trusted_ca_url",
            "minLength": 1,
            "maxLength": 131072,
            "x-displayname": "Inline Root CA Certificate (legacy)",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-f5xc-description-short": "Exclusive with [trusted_ca] Upload a Root CA Certificate specifically for this Load Balancer.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 131072,
              "byteLength": {
                "max": 131072,
                "min": 1
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca"
            ]
          },
          "xfcc_disabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "xfcc_options"
            ]
          },
          "xfcc_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsXfccHeaderKeys"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for xfcc options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "xfcc_disabled"
            ]
          }
        },
        "x-f5xc-description-short": "Validation context for downstream client TLS connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsDownstreamTlsValidationContext",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsInternetVIPInfo": {
        "type": "object",
        "description": "Internet VIP Info.",
        "title": "Internet VIP Info",
        "x-displayname": "Internet VIP Info.",
        "x-ves-proto-message": "ves.io.schema.views.InternetVIPInfo",
        "properties": {
          "site_name": {
            "type": "string",
            "description": "Site Name where Internet VIP is installed.",
            "title": "Site Name",
            "x-displayname": "Site Name",
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Site Name where Internet VIP is installed.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site_network_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteNetwork"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsInternetVIPStatus"
              }
            ],
            "x-f5xc-example": "active",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsInternetVIPInfo",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsInternetVIPListenerStatusType": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.InternetVIPListenerStatusType",
        "properties": {
          "arn": {
            "type": "string",
            "description": "Configuration parameter for arn",
            "title": "Name",
            "x-displayname": "Name",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "identifier",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^arn:aws:[a-z0-9-]+:[a-z0-9-]*:[0-9]{12}:[a-z0-9-/]+$",
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port": {
            "type": "integer",
            "description": "TCP/UDP port number (1-65535)",
            "title": "Port",
            "format": "int64",
            "x-displayname": "Port",
            "x-f5xc-example": "8080",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "networking",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "protocol": {
            "type": "string",
            "description": "Protocol",
            "title": "Protocol",
            "x-displayname": "Protocol",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "reason": {
            "type": "string",
            "description": "Reason",
            "title": "Reason",
            "x-displayname": "Reason",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 27,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "status": {
            "type": "string",
            "description": "Status",
            "title": "Status",
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsInternetVIPListenerStatusType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsInternetVIPStatus": {
        "type": "object",
        "description": "CName and installation info.",
        "title": "Internet VIP Status",
        "x-displayname": "Internet VIP Status.",
        "x-ves-proto-message": "ves.io.schema.views.InternetVIPStatus",
        "properties": {
          "arn": {
            "type": "string",
            "description": "Configuration parameter for arn",
            "title": "ARN",
            "x-displayname": "ARN",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "identifier",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^arn:aws:[a-z0-9-]+:[a-z0-9-]*:[0-9]{12}:[a-z0-9-/]+$",
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the resource",
            "title": "Name",
            "x-displayname": "Name",
            "x-f5xc-example": "example-resource",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "nlb_cname": {
            "type": "string",
            "description": "NLB CNAME",
            "title": "NLB CNAME",
            "x-displayname": "NLB CNAME",
            "x-f5xc-example": "example-resource",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "nlb_status": {
            "type": "string",
            "description": "NLB Status.",
            "title": "NLB Status",
            "x-displayname": "NLB Status.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "reason": {
            "type": "string",
            "description": "Reason",
            "title": "Reason",
            "x-displayname": "Reason",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 27,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "target_group_status": {
            "type": "array",
            "description": "Target Group Status.",
            "title": "Target Group Status",
            "items": {
              "$ref": "#/components/schemas/viewsInternetVIPTargetGroupStatusType"
            },
            "x-displayname": "Target Group Status.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsInternetVIPStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsInternetVIPTargetGroupStatusType": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.InternetVIPTargetGroupStatusType",
        "properties": {
          "arn": {
            "type": "string",
            "description": "Configuration parameter for arn",
            "title": "ARN",
            "x-displayname": "ARN",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "identifier",
              "maxLength": 1024,
              "minLength": 1,
              "pattern": "^arn:aws:[a-z0-9-]+:[a-z0-9-]*:[0-9]{12}:[a-z0-9-/]+$",
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "listener_status": {
            "type": "array",
            "description": "Listener status.",
            "title": "Listener status",
            "items": {
              "$ref": "#/components/schemas/viewsInternetVIPListenerStatusType"
            },
            "x-displayname": "Listener status.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Human-readable name for the resource",
            "title": "Name",
            "x-displayname": "Name",
            "x-f5xc-example": "example-resource",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "protocol": {
            "type": "string",
            "description": "Protocol",
            "title": "Protocol",
            "x-displayname": "Protocol",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "reason": {
            "type": "string",
            "description": "Reason",
            "title": "Reason",
            "x-displayname": "Reason",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 27,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "status": {
            "type": "string",
            "description": "Status",
            "title": "Status",
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsInternetVIPTargetGroupStatusType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsOriginPoolListType": {
        "type": "object",
        "description": "List of Origin Pools.",
        "title": "OriginPoolListType",
        "x-displayname": "Origin Pool List Type.",
        "x-ves-proto-message": "ves.io.schema.views.OriginPoolListType",
        "properties": {
          "pools": {
            "type": "array",
            "description": "List of Origin Pools.",
            "title": "Pools",
            "maxItems": 8,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 8,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsOriginPoolListType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsOriginPoolWithWeight": {
        "type": "object",
        "description": "This defines a combination of origin pool with weight and priority.",
        "title": "OriginPoolWithWeight",
        "x-displayname": "Origin Pool with Weight.",
        "x-ves-oneof-field-pool_choice": "[\"cluster\",\"pool\"]",
        "x-ves-proto-message": "ves.io.schema.views.OriginPoolWithWeight",
        "properties": {
          "cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-example": "production-cluster",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "pool"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "cluster",
                "field_path": "cluster",
                "gated_by": {
                  "choice": "pool_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "endpoint_subsets": {
            "type": "object",
            "description": "Upstream origin pool may be configured to divide its origin servers into subsets based on metadata\nattached to the origin servers. Routes may then specify the metadata that a endpoint must match in\norder to be selected by the load balancer\n\nFor origin servers which are discovered in K8s or Consul cluster, the label of the service is merged with\nendpoint's labels. In case of Consul, the label is derived from the \"Tag\" field.\nFor labels that are common between configured endpoint and discovered service, labels from discovered service\ntakes precedence.\n\nList of key-value pairs that will be used as matching metadata. Only those origin servers of\nupstream origin pool which match this metadata will be selected for load balancing.",
            "title": "Origin Servers Subset",
            "x-displayname": "Origin Servers Subsets.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "16"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "16"
            },
            "x-f5xc-description-short": "Upstream origin pool may be configured to divide its origin servers into subsets based on metadata attached to the origin servers.",
            "x-f5xc-description-medium": "Upstream origin pool may be configured to divide its origin servers into subsets based on metadata attached to the origin servers. Routes may then specify the metadata that a endpoint must match in order to be selected by the load balancer For origin servers which are discovered in K8s or Consul...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cluster"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "origin_pool",
                "field_path": "pool",
                "gated_by": {
                  "choice": "pool_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "priority": {
            "type": "integer",
            "description": "Priority of this origin pool, valid only with multiple origin pools.\nValue of 0 will make the pool as lowest priority origin pool\nPriority of 1 means highest priority and is considered active.\nWhen active origin pool is not available, lower priority origin pools are\nmade active as per the increasing priority.",
            "title": "Priority",
            "format": "int64",
            "x-displayname": "Priority",
            "x-ves-example": "1",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "32"
            },
            "x-f5xc-description-short": "Priority of this origin pool, valid only with multiple origin pools.",
            "x-f5xc-description-medium": "Priority of this origin pool, valid only with multiple origin pools. Value of 0 will make the pool as lowest priority origin pool Priority of 1 means highest priority and is considered active. When active origin pool is not available, lower priority origin pools are made active as per the...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 32,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "weight": {
            "type": "integer",
            "description": "Weight of this origin pool, valid only with multiple origin pool. Value of 0 will disable the pool.",
            "title": "Weight",
            "format": "int64",
            "x-displayname": "Weight",
            "x-ves-example": "1",
            "x-f5xc-example": "1",
            "x-f5xc-description-short": "Weight of this origin pool, valid only with multiple origin pool. Value of 0 will disable the pool.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "load-balancing",
              "minimum": 0,
              "maximum": 100,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines a combination of origin pool with weight and priority.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsOriginPoolWithWeight",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsPrefixStringListType": {
        "type": "object",
        "description": "List of IPv4 prefixes that represent an endpoint.",
        "title": "ipv4 prefix list",
        "x-displayname": "IPv4 Prefix List.",
        "x-ves-proto-message": "ves.io.schema.views.PrefixStringListType",
        "properties": {
          "prefixes": {
            "type": "array",
            "description": "List of IPv4 prefixes that represent an endpoint.",
            "title": "ipv4 prefix list",
            "maxItems": 128,
            "items": {
              "type": "string"
            },
            "x-displayname": "IPv4 Prefix List.",
            "x-ves-example": "192.0.2.0/24.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "192.0.2.0/24",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of IPv4 prefixes that represent an endpoint.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-example": "192.0.2.0/24",
        "x-f5xc-description-short": "List of IPv4 prefixes that represent an endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsPrefixStringListType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsSiteLocator": {
        "type": "object",
        "description": "This message defines a reference to a site or virtual site object.",
        "title": "SiteLocator",
        "x-displayname": "Site or Virtual Site.",
        "x-ves-oneof-field-choice": "[\"site\",\"virtual_site\"]",
        "x-ves-proto-message": "ves.io.schema.views.SiteLocator",
        "properties": {
          "site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "virtual_site"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "site",
                "field_path": "site",
                "gated_by": {
                  "choice": "choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "virtual_site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "virtual_site",
                "field_path": "virtual_site",
                "gated_by": {
                  "choice": "choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Message defines a reference to a site or virtual site object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsSiteLocator",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Sites are platform-level infrastructure"
          },
          "classification": {
            "category": "infrastructure",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "viewsSiteNetwork": {
        "type": "string",
        "description": "This defines network types to be used on site\n\nAll inside and outside networks.\nAll inside and outside networks with internet VIP support.\nAll inside networks.\nAll outside networks.\nAll outside networks with internet VIP support.\nVK8s service network.\n- SITE_NETWORK_IP_FABRIC: VER IP Fabric network for the site\n\nThis Virtual network type is used for exposing virtual host on IP Fabric network on the VER site or\nfor endpoint in IP Fabric network.",
        "title": "SiteNetwork",
        "enum": [
          "SITE_NETWORK_INSIDE_AND_OUTSIDE",
          "SITE_NETWORK_INSIDE",
          "SITE_NETWORK_OUTSIDE",
          "SITE_NETWORK_SERVICE",
          "SITE_NETWORK_OUTSIDE_WITH_INTERNET_VIP",
          "SITE_NETWORK_INSIDE_AND_OUTSIDE_WITH_INTERNET_VIP",
          "SITE_NETWORK_IP_FABRIC"
        ],
        "default": "SITE_NETWORK_INSIDE_AND_OUTSIDE",
        "x-displayname": "Site Network.",
        "x-ves-proto-enum": "ves.io.schema.views.SiteNetwork",
        "x-f5xc-description-short": "Defines network types to be used on site All inside and outside networks. All inside and outside networks with internet VIP support.",
        "x-f5xc-description-medium": "Defines network types to be used on site All inside and outside networks. All inside and outside networks with internet VIP support. All inside networks.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsSiteNetwork",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"SITE_NETWORK_INSIDE_AND_OUTSIDE\"",
          "example_yaml": "SITE_NETWORK_INSIDE_AND_OUTSIDE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Sites are platform-level infrastructure"
          },
          "classification": {
            "category": "infrastructure",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "viewsSiteNetworkSpecifiedVIP": {
        "type": "string",
        "description": "This defines network types to be used on virtual-site with specified VIP\n\nAll outside networks.\nAll inside networks.",
        "title": "SiteNetworkSpecifiedVIP",
        "enum": [
          "SITE_NETWORK_SPECIFIED_VIP_OUTSIDE",
          "SITE_NETWORK_SPECIFIED_VIP_INSIDE"
        ],
        "default": "SITE_NETWORK_SPECIFIED_VIP_OUTSIDE",
        "x-displayname": "Site Network.",
        "x-ves-proto-enum": "ves.io.schema.views.SiteNetworkSpecifiedVIP",
        "x-f5xc-description-short": "Defines network types to be used on virtual-site with specified VIP All outside networks.",
        "x-f5xc-description-medium": "Defines network types to be used on virtual-site with specified VIP All outside networks. All inside networks.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsSiteNetworkSpecifiedVIP",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"SITE_NETWORK_SPECIFIED_VIP_OUTSIDE\"",
          "example_yaml": "SITE_NETWORK_SPECIFIED_VIP_OUTSIDE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Sites are platform-level infrastructure"
          },
          "classification": {
            "category": "infrastructure",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "viewsSnatPoolConfiguration": {
        "type": "object",
        "description": "SNAT Pool configuration.",
        "title": "SnatPoolConfiguration",
        "x-displayname": "SNAT Pool",
        "x-ves-oneof-field-snat_pool_choice": "[\"no_snat_pool\",\"snat_pool\"]",
        "x-ves-proto-message": "ves.io.schema.views.SnatPoolConfiguration",
        "properties": {
          "no_snat_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no snat pool.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "snat_pool"
            ]
          },
          "snat_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsPrefixStringListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_snat_pool"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsSnatPoolConfiguration",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsTlsConfig": {
        "type": "object",
        "description": "This defines various OPTIONS to configure TLS configuration parameters.",
        "title": "TlsConfig",
        "x-displayname": "TLS Config.",
        "x-ves-displayorder": "5",
        "x-ves-oneof-field-choice": "[\"custom_security\",\"default_security\",\"low_security\",\"medium_security\"]",
        "x-ves-proto-message": "ves.io.schema.views.TlsConfig",
        "properties": {
          "custom_security": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsCustomCiphers"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_security",
              "low_security",
              "medium_security"
            ]
          },
          "default_security": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_security",
              "low_security",
              "medium_security"
            ]
          },
          "low_security": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_security",
              "default_security",
              "medium_security"
            ]
          },
          "medium_security": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_security",
              "default_security",
              "low_security"
            ]
          }
        },
        "x-f5xc-description-short": "Defines various OPTIONS to configure TLS configuration parameters.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsTlsConfig",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsWhereSite": {
        "type": "object",
        "description": "This defines a reference to a CE site along with network type and an optional IP address where a load balancer could be advertised.",
        "title": "WhereSite",
        "x-displayname": "Site",
        "x-ves-displayorder": "1,2,3",
        "x-ves-proto-message": "ves.io.schema.views.WhereSite",
        "properties": {
          "ip": {
            "type": "string",
            "description": "Use given IP address as VIP on the site.",
            "title": "IP address on the site",
            "x-displayname": "IP Address.",
            "x-ves-example": "192.0.2.132.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-example": "192.0.2.132",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-description-short": "Use given IP address as VIP on the site.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "ipv4",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteNetwork"
              }
            ],
            "x-f5xc-example": "192.0.2.0/24",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "site",
                "field_path": "site",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Defines a reference to a CE site along with network type and an optional IP address where a load balancer could be advertised.",
        "x-f5xc-description-medium": "Defines a reference to a CE site along with network type and an optional IP address where a load balancer could be advertised.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsWhereSite",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsWhereType__ves_io_schema_views_bigip_http_proxy": {
        "type": "object",
        "description": "This defines various OPTIONS where a Loadbalancer could be advertised.",
        "title": "WhereType",
        "x-displayname": "Select Where to Advertise.",
        "x-ves-displayorder": "4,5",
        "x-ves-oneof-field-choice": "[\"advertise_on_public\",\"cloud_edge_segment\",\"segment\",\"site\",\"site_segment\",\"virtual_network\",\"virtual_site\",\"virtual_site_segment\",\"virtual_site_with_vip\",\"vk8s_service\"]",
        "x-ves-oneof-field-port_choice": "[\"port\",\"port_ranges\",\"use_default_port\"]",
        "x-ves-proto-message": "ves.io.schema.views.WhereType",
        "properties": {
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cloud_edge_segment",
              "segment",
              "site",
              "site_segment",
              "virtual_network",
              "virtual_site",
              "virtual_site_segment",
              "virtual_site_with_vip",
              "vk8s_service"
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges use_default_port]\nPort to Listen.",
            "title": "Port to listen",
            "format": "int64",
            "x-displayname": "Listen Port.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "8080",
            "x-f5xc-description-short": "Exclusive with [port_ranges use_default_port] Port to Listen.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges",
              "use_default_port"
            ]
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [port use_default_port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "title": "Port ranges to listen",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Listen Port Ranges.",
            "x-ves-example": "80,443,8080-8191,9080.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "80,443,8080-8191,9080",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [port use_default_port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [port use_default_port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port",
              "use_default_port"
            ]
          },
          "site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsWhereSite"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "cloud_edge_segment",
              "segment",
              "site_segment",
              "virtual_network",
              "virtual_site",
              "virtual_site_segment",
              "virtual_site_with_vip",
              "vk8s_service"
            ]
          },
          "use_default_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port",
              "port_ranges"
            ]
          },
          "virtual_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsWhereVirtualNetwork"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for virtual network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "cloud_edge_segment",
              "segment",
              "site",
              "site_segment",
              "virtual_site",
              "virtual_site_segment",
              "virtual_site_with_vip",
              "vk8s_service"
            ]
          },
          "virtual_site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsWhereVirtualSite"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "cloud_edge_segment",
              "segment",
              "site",
              "site_segment",
              "virtual_network",
              "virtual_site_segment",
              "virtual_site_with_vip",
              "vk8s_service"
            ]
          },
          "virtual_site_with_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsWhereVirtualSiteSpecifiedVIP"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "cloud_edge_segment",
              "segment",
              "site",
              "site_segment",
              "virtual_network",
              "virtual_site",
              "virtual_site_segment",
              "vk8s_service"
            ]
          },
          "vk8s_service": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsWhereVK8SService"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for vk8s service.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "cloud_edge_segment",
              "segment",
              "site",
              "site_segment",
              "virtual_network",
              "virtual_site",
              "virtual_site_segment",
              "virtual_site_with_vip"
            ]
          }
        },
        "x-f5xc-description-short": "Defines various OPTIONS where a Loadbalancer could be advertised.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsWhereType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsWhereVK8SService": {
        "type": "object",
        "description": "This defines a reference to a RE site or virtual site where a load balancer could be advertised in the vK8s service network.",
        "title": "WhereVK8SService",
        "x-displayname": "VK8s Services on RE.",
        "x-ves-displayorder": "3",
        "x-ves-oneof-field-choice": "[\"site\",\"virtual_site\"]",
        "x-ves-proto-message": "ves.io.schema.views.WhereVK8SService",
        "properties": {
          "site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "virtual_site"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "site",
                "field_path": "site",
                "gated_by": {
                  "choice": "choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "virtual_site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "virtual_site",
                "field_path": "virtual_site",
                "gated_by": {
                  "choice": "choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Defines a reference to a RE site or virtual site where a load balancer could be advertised in the vK8s service network.",
        "x-f5xc-description-medium": "Defines a reference to a RE site or virtual site where a load balancer could be advertised in the vK8s service network.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsWhereVK8SService",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsWhereVirtualNetwork": {
        "type": "object",
        "description": "Parameters to advertise on a given virtual network.",
        "title": "WhereVirtualNetwork",
        "x-displayname": "Virtual Network.",
        "x-ves-displayorder": "1,2,10",
        "x-ves-oneof-field-v6_vip_choice": "[\"default_v6_vip\",\"specific_v6_vip\"]",
        "x-ves-oneof-field-vip_choice": "[\"default_vip\",\"specific_vip\"]",
        "x-ves-proto-message": "ves.io.schema.views.WhereVirtualNetwork",
        "properties": {
          "default_v6_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_v6_vip"
            ]
          },
          "default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "specific_vip"
            ]
          },
          "specific_v6_vip": {
            "type": "string",
            "description": "Exclusive with [default_v6_vip]\nUse given IPv6 address as VIP on virtual Network.",
            "title": "Specific V6 VIP",
            "x-displayname": "Specific V6 VIP.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv6": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv6": "true"
            },
            "x-f5xc-description-short": "Exclusive with [default_v6_vip] Use given IPv6 address as VIP on virtual Network.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "ipv6",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_v6_vip"
            ]
          },
          "specific_vip": {
            "type": "string",
            "description": "Exclusive with [default_vip]\nUse given IPv4 address as VIP on virtual Network.",
            "title": "Specific VIP",
            "x-displayname": "Specific V4 VIP.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-description-short": "Exclusive with [default_vip] Use given IPv4 address as VIP on virtual Network.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "ipv4",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_vip"
            ]
          },
          "virtual_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for virtual network.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "virtual_network",
                "field_path": "virtual_network",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Parameters to advertise on a given virtual network.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsWhereVirtualNetwork",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsWhereVirtualSite": {
        "type": "object",
        "description": "This defines a reference to a customer site virtual site along with network type where a load balancer could be advertised.",
        "title": "WhereVirtualSite",
        "x-displayname": "Virtual Site.",
        "x-ves-displayorder": "1,2",
        "x-ves-proto-message": "ves.io.schema.views.WhereVirtualSite",
        "properties": {
          "network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteNetwork"
              }
            ],
            "x-f5xc-example": "192.0.2.0/24",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "virtual_site",
                "field_path": "virtual_site",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Defines a reference to a customer site virtual site along with network type where a load balancer could be advertised.",
        "x-f5xc-description-medium": "Defines a reference to a customer site virtual site along with network type where a load balancer could be advertised.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsWhereVirtualSite",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsWhereVirtualSiteSpecifiedVIP": {
        "type": "object",
        "description": "This defines a reference to a customer site virtual site along with network type and IP where a load balancer could be advertised.",
        "title": "WhereVirtualSiteSpecifiedVIP",
        "x-displayname": "Virtual Site with Specified VIP.",
        "x-ves-proto-message": "ves.io.schema.views.WhereVirtualSiteSpecifiedVIP",
        "properties": {
          "ip": {
            "type": "string",
            "description": "Use given IP address as VIP on the site.",
            "title": "IP address on the site",
            "x-displayname": "IP Address.",
            "x-ves-example": "192.0.2.132.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-example": "192.0.2.132",
            "x-validation-rules": {
              "ves.io.schema.rules.string.ipv4": "true"
            },
            "x-f5xc-description-short": "Use given IP address as VIP on the site.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "format": "ipv4",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSiteNetworkSpecifiedVIP"
              }
            ],
            "x-f5xc-example": "192.0.2.0/24",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "virtual_site",
                "field_path": "virtual_site",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Defines a reference to a customer site virtual site along with network type and IP where a load balancer could be advertised.",
        "x-f5xc-description-medium": "Defines a reference to a customer site virtual site along with network type and IP where a load balancer could be advertised.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsWhereVirtualSiteSpecifiedVIP",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsXfccHeaderKeys": {
        "type": "object",
        "description": "X-Forwarded-Client-Cert header elements to be added to requests.",
        "title": "XfccHeaderKeys",
        "x-displayname": "XFCC Header Elements.",
        "x-ves-proto-message": "ves.io.schema.views.XfccHeaderKeys",
        "properties": {
          "xfcc_header_elements": {
            "type": "array",
            "description": "X-Forwarded-Client-Cert header elements to be added to requests.",
            "title": "XFCC Header",
            "items": {
              "$ref": "#/components/schemas/schemaXfccElement"
            },
            "x-displayname": "XFCC Header Elements.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]"
            },
            "x-f5xc-description-short": "X-Forwarded-Client-Cert header elements to be added to requests.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "X-Forwarded-Client-Cert header elements to be added to requests.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsXfccHeaderKeys",
          "required_fields": [
            "xfcc_header_elements"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"xfcc_header_elements\": [\n    \"XFCC_NONE\"\n  ]\n}",
          "example_yaml": "xfcc_header_elements:\n- XFCC_NONE"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewscommon_cache_ruleDefaultCacheAction": {
        "type": "object",
        "description": "This defines a Default Cache Action.",
        "title": "Default Cache Action",
        "x-displayname": "Default Cache Behaviour.",
        "x-ves-oneof-field-cache_actions": "[\"cache_disabled\",\"cache_ttl_default\",\"cache_ttl_override\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_cache_rule.DefaultCacheAction",
        "properties": {
          "cache_disabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cache_ttl_default",
              "cache_ttl_override"
            ]
          },
          "cache_ttl_default": {
            "type": "string",
            "description": "Exclusive with [cache_disabled cache_ttl_override]\nUse Cache TTL Provided by Origin, and set a contigency TTL value in case one is not provided.",
            "title": "Use Cache TTL Provided by Origin",
            "x-displayname": "Fallback Cache TTL (d/ h/ m)",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Exclusive with [cache_disabled cache_ttl_override] Use Cache TTL Provided by Origin, and set a contigency TTL value in case one is not provided.",
            "x-f5xc-description-medium": "Exclusive with [cache_disabled cache_ttl_override] Use Cache TTL Provided by Origin, and set a contigency TTL value in case one is not provided.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cache_disabled",
              "cache_ttl_override"
            ]
          },
          "cache_ttl_override": {
            "type": "string",
            "description": "Exclusive with [cache_disabled cache_ttl_default]\nAlways override the Cache TTL provided by Origin.",
            "title": "Override Cache TTL Provided by Origin",
            "x-displayname": "Override Cache TTL (d/ h/ m/ s)",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Exclusive with [cache_disabled cache_ttl_default] Always override the Cache TTL provided by Origin.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cache_disabled",
              "cache_ttl_default"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewscommon_cache_ruleDefaultCacheAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewscommon_securityJavaScriptLocation": {
        "type": "string",
        "description": "All inside networks.\n\nInsert JavaScript after <HEAD> tag\nInsert JavaScript after </title> tag.\nInsert JavaScript before first tag.",
        "title": "JavaScriptLocation",
        "enum": [
          "AFTER_HEAD",
          "AFTER_TITLE_END",
          "BEFORE_SCRIPT"
        ],
        "default": "AFTER_HEAD",
        "x-displayname": "JavaScript Location.",
        "x-ves-proto-enum": "ves.io.schema.views.common_security.JavaScriptLocation",
        "x-f5xc-description-short": "All inside networks. Insert JavaScript after <HEAD> tag Insert JavaScript after </title> tag.",
        "x-f5xc-description-medium": "All inside networks. Insert JavaScript after <HEAD> tag Insert JavaScript after </title> tag. Insert JavaScript before first tag.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewscommon_securityJavaScriptLocation",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"AFTER_HEAD\"",
          "example_yaml": "AFTER_HEAD\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewscommon_wafDomainConfiguration": {
        "type": "object",
        "description": "The DomainConfiguration message.",
        "title": "Configured API Domains",
        "x-displayname": "Crawler Details.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.DomainConfiguration",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Select the domain to execute API Crawling with given credentials.",
            "title": "Custom domain to crawl",
            "maxLength": 256,
            "x-displayname": "Domain",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-example": "example.com",
            "x-f5xc-description-short": "Select the domain to execute API Crawling with given credentials.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "simple_login": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafSimpleLogin"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for simple login.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewscommon_wafDomainConfiguration",
          "required_fields": [
            "domain"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domain\": \"example.com\"\n}",
          "example_yaml": "domain: example.com"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewscommon_wafIPThreatCategoryListType": {
        "type": "object",
        "description": "List of IP threat categories.",
        "title": "IP Threat Category List Type",
        "x-displayname": "IP Threat Category List.",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.IPThreatCategoryListType",
        "properties": {
          "ip_threat_categories": {
            "type": "array",
            "description": "If the source IP matches on atleast one of the enabled IP threat categories, the request will be denied.",
            "title": "IP Threat Categories",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/policyIPThreatCategory"
            },
            "x-displayname": "List of IP Threat Categories to choose.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "If the source IP matches on atleast one of the enabled IP threat categories, the request will be denied.",
            "x-f5xc-description-medium": "If the source IP matches on atleast one of the enabled IP threat categories, the request will be denied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewscommon_wafIPThreatCategoryListType",
          "required_fields": [
            "ip_threat_categories"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"ip_threat_categories\": [\n    \"SPAM_SOURCES\"\n  ]\n}",
          "example_yaml": "ip_threat_categories:\n- SPAM_SOURCES"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewscommon_wafPolicyBasedChallenge": {
        "type": "object",
        "description": "Specifies the settings for policy rule based challenge.",
        "title": "policy based challenge",
        "x-displayname": "Policy Based Challenge.",
        "x-ves-oneof-field-captcha_challenge_parameters_choice": "[\"captcha_challenge_parameters\",\"default_captcha_challenge_parameters\"]",
        "x-ves-oneof-field-challenge_choice": "[\"always_enable_captcha_challenge\",\"always_enable_js_challenge\",\"no_challenge\"]",
        "x-ves-oneof-field-js_challenge_parameters_choice": "[\"default_js_challenge_parameters\",\"js_challenge_parameters\"]",
        "x-ves-oneof-field-malicious_user_mitigation_choice": "[\"default_mitigation_settings\",\"malicious_user_mitigation\"]",
        "x-ves-oneof-field-temporary_blocking_parameters_choice": "[\"default_temporary_blocking_parameters\",\"temporary_user_blocking\"]",
        "x-ves-proto-message": "ves.io.schema.views.common_waf.PolicyBasedChallenge",
        "properties": {
          "always_enable_captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for always enable captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "always_enable_js_challenge",
              "no_challenge"
            ]
          },
          "always_enable_js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for always enable js challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "always_enable_captcha_challenge",
              "no_challenge"
            ]
          },
          "captcha_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_captcha_challenge_parameters"
            ]
          },
          "default_captcha_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default captcha challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge_parameters"
            ]
          },
          "default_js_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default js challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_challenge_parameters"
            ]
          },
          "default_mitigation_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "malicious_user_mitigation"
            ]
          },
          "default_temporary_blocking_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "temporary_user_blocking"
            ]
          },
          "js_challenge_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js challenge parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_js_challenge_parameters"
            ]
          },
          "malicious_user_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_mitigation_settings"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "malicious_user_mitigation",
                "field_path": "malicious_user_mitigation",
                "gated_by": {
                  "choice": "malicious_user_mitigation_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "no_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "always_enable_captcha_challenge",
              "always_enable_js_challenge"
            ]
          },
          "rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafChallengeRuleList"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "temporary_user_blocking": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostTemporaryUserBlockingType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_temporary_blocking_parameters"
            ]
          }
        },
        "x-f5xc-description-short": "Specifies the settings for policy rule based challenge.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewscommon_wafPolicyBasedChallenge",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewshttp_loadbalancerCreateSpecType": {
        "type": "object",
        "description": "Shape of the HTTP load balancer specification.",
        "title": "CreateSpecType",
        "x-displayname": "Create HTTP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-api_definition_choice": "[\"api_specification\",\"disable_api_definition\"]",
        "x-ves-oneof-field-api_discovery_choice": "[\"disable_api_discovery\",\"enable_api_discovery\"]",
        "x-ves-oneof-field-api_testing_choice": "[\"api_testing\",\"disable_api_testing\"]",
        "x-ves-oneof-field-bot_defense_choice": "[\"bot_defense\",\"bot_defense_advanced\",\"disable_bot_defense\"]",
        "x-ves-oneof-field-cache_options": "[\"caching_policy\",\"disable_caching\"]",
        "x-ves-oneof-field-challenge_type": "[\"captcha_challenge\",\"enable_challenge\",\"js_challenge\",\"no_challenge\",\"policy_based_challenge\"]",
        "x-ves-oneof-field-client_side_defense_choice": "[\"client_side_defense\",\"disable_client_side_defense\"]",
        "x-ves-oneof-field-hash_policy_choice": "[\"cookie_stickiness\",\"least_active\",\"random\",\"ring_hash\",\"round_robin\",\"source_ip_stickiness\"]",
        "x-ves-oneof-field-ip_reputation_choice": "[\"disable_ip_reputation\",\"enable_ip_reputation\"]",
        "x-ves-oneof-field-l7_ddos_auto_mitigation_action": "[\"l7_ddos_action_block\",\"l7_ddos_action_default\",\"l7_ddos_action_js_challenge\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"http\",\"https\",\"https_auto_cert\"]",
        "x-ves-oneof-field-malicious_user_detection_choice": "[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]",
        "x-ves-oneof-field-malware_protection": "[\"disable_malware_protection\",\"malware_protection_settings\"]",
        "x-ves-oneof-field-ml_config_choice": "[\"multi_lb_app\",\"single_lb_app\"]",
        "x-ves-oneof-field-origin_pool_choice": "[\"default_pool\",\"default_pool_list\"]",
        "x-ves-oneof-field-rate_limit_choice": "[\"api_rate_limit\",\"disable_rate_limit\",\"rate_limit\"]",
        "x-ves-oneof-field-sensitive_data_policy_choice": "[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-oneof-field-slow_ddos_mitigation_choice": "[\"slow_ddos_mitigation\",\"system_default_timeouts\"]",
        "x-ves-oneof-field-threat_mesh_choice": "[\"disable_threat_mesh\",\"enable_threat_mesh\"]",
        "x-ves-oneof-field-trust_client_ip_headers_choice": "[\"disable_trust_client_ip_headers\",\"enable_trust_client_ip_headers\"]",
        "x-ves-oneof-field-user_id_choice": "[\"user_id_client_ip\",\"user_identification\"]",
        "x-ves-oneof-field-waf_choice": "[\"app_firewall\",\"disable_waf\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.CreateSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "add_location": {
            "type": "boolean",
            "description": "X-example: true\nAppends header x-F5 Distributed Cloud-location = <RE-site-name> in responses. This configuration\nis ignored on CE sites.",
            "format": "boolean",
            "x-displayname": "Add Location.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ],
            "x-f5xc-requires": [
              {
                "field": "advertise_where",
                "required": true,
                "reason": "advertise_custom requires advertise_where with min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "advertise_where.choice",
                "required": true,
                "reason": "Each where entry needs choice oneOf: site, virtual_site, vk8s_networks, virtual_network (400 without)"
              },
              {
                "field": "advertise_where",
                "required": true,
                "reason": "advertise_custom requires advertise_where with min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "advertise_where.choice",
                "required": true,
                "reason": "Each where entry needs choice oneOf: site, virtual_site, vk8s_networks, virtual_network (400 without)"
              }
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "api_protection_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIProtectionRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIRateLimit"
              }
            ],
            "x-f5xc-description-short": "Path- or API-group-scoped rate limiting.",
            "x-f5xc-description-medium": "Path- or API-group-scoped rate limiting. Define server_url_rules or api_endpoint_rules and choose inline_rate_limiter for an inline limit, or ref_rate_limiter for a stored rate-limiter reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Path- or API-group-scoped rate limiting. Define server_url_rules or api_endpoint_rules and choose inline_rate_limiter for an inline limit, or ref_rate_limiter for a stored rate-limiter reference.",
            "x-f5xc-conflicts-with": [
              "disable_rate_limit",
              "rate_limit"
            ]
          },
          "api_specification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPISpecificationSettings"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_definition"
            ]
          },
          "api_testing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerApiTesting"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_testing"
            ]
          },
          "app_firewall": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_waf"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "app_firewall",
                "field_path": "app_firewall",
                "gated_by": {
                  "choice": "waf_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "blocked_clients": {
            "type": "array",
            "description": "Define rules to block IP Prefixes or AS numbers.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Client Blocking Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define rules to block IP Prefixes or AS numbers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeBotDefenseType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot defense.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_defense_advanced",
              "disable_bot_defense"
            ],
            "x-f5xc-requires": [
              {
                "field": "policy.protected_app_endpoints",
                "required": true,
                "reason": "bot_defense.policy.protected_app_endpoints REQUIRED min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "policy.protected_app_endpoints.flow_label_choice",
                "required": true,
                "reason": "Each endpoint requires flow_label_choice oneOf: undefined_flow_label, flow_label (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints.mitigation",
                "required": true,
                "reason": "Each endpoint requires mitigation (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints",
                "required": true,
                "reason": "bot_defense.policy.protected_app_endpoints REQUIRED min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "policy.protected_app_endpoints.flow_label_choice",
                "required": true,
                "reason": "Each endpoint requires flow_label_choice oneOf: undefined_flow_label, flow_label (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints.mitigation",
                "required": true,
                "reason": "Each endpoint requires mitigation (400 without)"
              }
            ]
          },
          "bot_defense_advanced": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityBotDefenseAdvancedType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot defense advanced.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_defense",
              "disable_bot_defense"
            ]
          },
          "caching_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerCachingPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_caching"
            ]
          },
          "captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_challenge",
              "js_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "client_side_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityClientSideDefenseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_client_side_defense"
            ],
            "x-f5xc-requires": [
              {
                "field": "client_side_defense",
                "requires_field": "resource:protected_domain (same namespace)",
                "requires_resource": {
                  "resource": "protected_domain",
                  "scope": "same_namespace"
                },
                "reason": "Client-Side Defense requires a protected_domain (eTLD+1) registered in the load balancer's OWN namespace — F5 XC generates the per-namespace CSD JS configuration from it. Enabling client_side_defense without one fails with 500 'Failed to get CSD JS Configuration for <tenant>. Please ensure the domain to protect is configured in Client-Side Defense before proceeding'. Verified via live API 2026-07."
              },
              {
                "field": "client_side_defense",
                "requires_field": "resource:protected_domain (same namespace)",
                "requires_resource": {
                  "resource": "protected_domain",
                  "scope": "same_namespace"
                },
                "reason": "Client-Side Defense requires a protected_domain (eTLD+1) registered in the load balancer's OWN namespace — F5 XC generates the per-namespace CSD JS configuration from it. Enabling client_side_defense without one fails with 500 'Failed to get CSD JS Configuration for <tenant>. Please ensure the domain to protect is configured in Client-Side Defense before proceeding'. Verified via live API 2026-07."
              }
            ]
          },
          "cookie_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeCookieForHashing"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for cookie stickiness.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "least_active",
              "random",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "cors_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCorsPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "csrf_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCsrfPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "data_guard_rules": {
            "type": "array",
            "description": "Data Guard prevents responses from exposing sensitive information by masking the data.\nThe system masks credit card numbers and social security numbers leaked from the application from within the HTTP response with a string of asterisks (*).\nNote: App Firewall should be enabled, to use Data Guard feature.",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policySimpleDataGuardRule"
            },
            "x-displayname": "Data Guard Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Data Guard prevents responses from exposing sensitive information by masking the data.",
            "x-f5xc-description-medium": "Data Guard prevents responses from exposing sensitive information by masking the data. The system masks credit card numbers and social security numbers leaked from the application from within the HTTP response with a string of asterisks (*).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "data_guard_rules",
                "requires_field": "spec.enable_waf",
                "reason": "Data Guard requires WAF to be enabled (400 when disable_waf is set)"
              },
              {
                "field": "data_guard_rules",
                "requires_field": "spec.enable_waf",
                "reason": "Data Guard requires WAF to be enabled (400 when disable_waf is set)"
              }
            ]
          },
          "ddos_mitigation_rules": {
            "type": "array",
            "description": "Define manual mitigation rules to block L7 DDoS attacks.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_securityDDoSMitigationRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "DDoS Mitigation Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define manual mitigation rules to block L7 DDoS attacks.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolGlobalSpecType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default pool.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_pool_list"
            ],
            "x-f5xc-requires": [
              {
                "field": "use_tls.tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400 without)"
              },
              {
                "field": "origin_servers",
                "required": true,
                "reason": "Inline pool requires at least one origin server",
                "min_items": 1
              },
              {
                "field": "port",
                "required": true
              },
              {
                "field": "use_tls.tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400 without)"
              },
              {
                "field": "origin_servers",
                "required": true,
                "reason": "Inline pool requires at least one origin server",
                "min_items": 1
              },
              {
                "field": "port",
                "required": true
              }
            ]
          },
          "default_pool_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsOriginPoolListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_pool"
            ]
          },
          "default_route_pools": {
            "type": "array",
            "description": "Origin Pools used when no route is specified (default route)",
            "maxItems": 8,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin Pools used when no route is specified (default route).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 8,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_sensitive_data_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "sensitive_data_policy"
            ]
          },
          "disable_api_definition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_specification"
            ]
          },
          "disable_api_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_api_discovery"
            ]
          },
          "disable_api_testing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_testing"
            ]
          },
          "disable_bot_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable bot defense.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "bot_defense",
              "bot_defense_advanced"
            ]
          },
          "disable_caching": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable caching.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "caching_policy"
            ]
          },
          "disable_client_side_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_side_defense"
            ]
          },
          "disable_ip_reputation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_ip_reputation"
            ]
          },
          "disable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_malicious_user_detection"
            ]
          },
          "disable_malware_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable malware protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "malware_protection_settings"
            ]
          },
          "disable_rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable rate limit.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_rate_limit",
              "rate_limit"
            ]
          },
          "disable_threat_mesh": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_threat_mesh"
            ]
          },
          "disable_trust_client_ip_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_trust_client_ip_headers"
            ]
          },
          "disable_waf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable waf.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "app_firewall"
            ]
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to load balancer.\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if the Loadbalancer type is HTTPS.\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to load balancer. Supported Domains and search order: 1.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to load balancer. Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "source": "minimum_configs",
              "itemFormat": "vh_domain",
              "description": "Domain list. Format: example.com[:port], *.example.com[:port]. Bare * rejected."
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "enable_api_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiDiscoverySetting__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_discovery"
            ]
          },
          "enable_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafEnableChallenge"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "js_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "enable_ip_reputation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_wafIPThreatCategoryListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_ip_reputation"
            ]
          },
          "enable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_malicious_user_detection"
            ]
          },
          "enable_threat_mesh": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_threat_mesh"
            ]
          },
          "enable_trust_client_ip_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostClientIPHeaders"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_trust_client_ip_headers"
            ]
          },
          "graphql_rules": {
            "type": "array",
            "description": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable\ndescription of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it\neasier to evolve APIs over time, and enables powerful developer tools. Policy configuration to analyze GraphQL\nqueries and prevent GraphQL tailored attacks.",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyGraphQLRule"
            },
            "x-displayname": "GraphQL Inspection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable description of the data in API.",
            "x-f5xc-description-medium": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable description of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it easier to evolve APIs over time, and enables powerful developer tools. Policy...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttp"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "https",
              "https_auto_cert"
            ],
            "x-f5xc-requires": [
              {
                "field": "port",
                "required": true,
                "reason": "HTTP lb_type requires port_choice (400 when port omitted, unlike https_auto_cert)"
              },
              {
                "field": "port",
                "required": true,
                "reason": "HTTP lb_type requires port_choice (400 when port omitted, unlike https_auto_cert)"
              }
            ]
          },
          "https": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttps"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http",
              "https_auto_cert"
            ]
          },
          "https_auto_cert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttpsAutoCerts"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for https auto cert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http",
              "https"
            ]
          },
          "js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "jwt_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafJWTValidation"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for jwt validation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "l7_ddos_action_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_default",
              "l7_ddos_action_js_challenge"
            ]
          },
          "l7_ddos_action_default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_block",
              "l7_ddos_action_js_challenge"
            ]
          },
          "l7_ddos_action_js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_block",
              "l7_ddos_action_default"
            ]
          },
          "l7_ddos_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerL7DDoSProtectionSettings"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for l7 ddos protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true
          },
          "least_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "random",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "malware_protection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityMalwareProtectionPolicy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for malware protection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_malware_protection"
            ]
          },
          "more_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerAdvancedOptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for more option.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "multi_lb_app": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for multi lb app.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "single_lb_app"
            ]
          },
          "no_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "js_challenge",
              "policy_based_challenge"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "origin_server_subset_rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerOriginServerSubsetRuleListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "policy_based_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_wafPolicyBasedChallenge"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for policy based challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "js_challenge",
              "no_challenge"
            ]
          },
          "protected_cookies": {
            "type": "array",
            "description": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.\nCookie Tampering Protection prevents attackers from modifying the value of session cookies.\nFor Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.\nThe configured mode of WAF (monitoring or blocking) will be enforced on the request when cookie tampering is identified.\nNote: We recommend enabling Secure and HttpOnly attributes along with cookie tampering protection.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaCookieManipulationOptionType"
            },
            "x-displayname": "Cookie Protection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.",
            "x-f5xc-description-medium": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses. Cookie Tampering Protection prevents attackers from modifying the value of session cookies. For Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafRateLimitConfigType"
              }
            ],
            "x-f5xc-example": "{\"requests_per_second\": 100}",
            "x-f5xc-description-short": "Load-balancer-wide per-client rate limiting.",
            "x-f5xc-description-medium": "Load-balancer-wide per-client rate limiting. The counter applies across every path; use api_rate_limit rules when only selected paths such as /login should be limited.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Load-balancer-wide per-client rate limiting. The counter applies across every path; use api_rate_limit rules when only selected paths such as /login should be limited.",
            "x-f5xc-conflicts-with": [
              "api_rate_limit",
              "disable_rate_limit"
            ],
            "x-f5xc-requires": [
              {
                "field": "rate_limiter.burst_multiplier",
                "required": true,
                "reason": "burst_multiplier MUST be > 0 (400: 'should be greater than 0')"
              },
              {
                "field": "rate_limiter.burst_multiplier",
                "required": true,
                "reason": "burst_multiplier MUST be > 0 (400: 'should be greater than 0')"
              }
            ]
          },
          "ring_hash": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerHashPolicyListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "ring_hash",
              "source_ip_stickiness"
            ]
          },
          "routes": {
            "type": "array",
            "description": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic\nto origin pool or redirect matching traffic to a different URL or respond directly to matching traffic.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/viewshttp_loadbalancerRouteType"
            },
            "x-displayname": "Routes",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic to origin pool or redirect matching...",
            "x-f5xc-description-medium": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic to origin pool or redirect matching traffic to a different URL or respond directly to matching traffic.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "simple_route.path",
                "required": true,
                "reason": "simple_route requires path (400: 'path should be not nil')"
              },
              {
                "field": "simple_route.origin_pools",
                "required": true,
                "reason": "simple_route requires at least one origin_pool (400: 'origin_pools should have minimum items of 1')",
                "min_items": 1
              },
              {
                "field": "direct_response_route.route_direct_response",
                "required": true,
                "reason": "direct_response_route requires route_direct_response (500 without: 'Route does not have action')"
              },
              {
                "field": "redirect_route.route_redirect",
                "required": true,
                "reason": "redirect_route requires route_redirect with at least proto_redirect"
              },
              {
                "field": "simple_route.path",
                "required": true,
                "reason": "simple_route requires path (400: 'path should be not nil')"
              },
              {
                "field": "simple_route.origin_pools",
                "required": true,
                "reason": "simple_route requires at least one origin_pool (400: 'origin_pools should have minimum items of 1')",
                "min_items": 1
              },
              {
                "field": "direct_response_route.route_direct_response",
                "required": true,
                "reason": "direct_response_route requires route_direct_response (500 without: 'Route does not have action')"
              },
              {
                "field": "redirect_route.route_redirect",
                "required": true,
                "reason": "redirect_route requires route_redirect with at least proto_redirect"
              }
            ]
          },
          "sensitive_data_disclosure_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerSensitiveDataDisclosureRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securitySensitiveDataPolicySettings"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_sensitive_data_policy"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "single_lb_app": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerSingleLoadBalancerAppSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for single lb app.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "multi_lb_app"
            ]
          },
          "slow_ddos_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostSlowDDoSMitigation"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "system_default_timeouts"
            ]
          },
          "source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "ring_hash",
              "round_robin"
            ]
          },
          "system_default_timeouts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for system default timeouts.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "slow_ddos_mitigation"
            ]
          },
          "trusted_clients": {
            "type": "array",
            "description": "Define rules to skip processing of one or more features such as WAF, Bot Defense etc. For clients.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Trusted Client Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define rules to skip processing of one or more features such as WAF, Bot Defense etc.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "actions",
                "required": true,
                "reason": "Trusted client entries require non-empty actions list (500 without)"
              },
              {
                "field": "actions",
                "required": true,
                "reason": "Trusted client entries require non-empty actions list (500 without)"
              }
            ]
          },
          "user_id_client_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "user_identification"
            ]
          },
          "user_identification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for user identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "user_id_client_ip"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "user_identification",
                "field_path": "user_identification",
                "gated_by": {
                  "choice": "user_id_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "waf_exclusion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafWafExclusion"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for waf exclusion.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of the HTTP load balancer specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewshttp_loadbalancerCreateSpecType",
          "required_fields": [
            "domains"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domains\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "domains:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "loadbalancer_type": "https_auto_cert",
          "advertise_choice": "advertise_on_public_default_vip",
          "waf_choice": "disable_waf",
          "challenge_type": "no_challenge",
          "rate_limit_choice": "disable_rate_limit",
          "user_identification_choice": "user_id_client_ip",
          "hash_policy_choice": "round_robin",
          "service_policy_choice": "service_policies_from_namespace",
          "sensitive_data_policy_choice": "default_sensitive_data_policy",
          "api_definition_choice": "disable_api_definition",
          "api_discovery_choice": "disable_api_discovery",
          "api_testing_choice": "disable_api_testing",
          "bot_defense_choice": "disable_bot_defense",
          "cache_options": "disable_caching",
          "client_side_defense_choice": "disable_client_side_defense",
          "ip_reputation_choice": "disable_ip_reputation",
          "l7_ddos_auto_mitigation_action": "l7_ddos_action_default",
          "malicious_user_detection_choice": "disable_malicious_user_detection",
          "malware_protection": "disable_malware_protection",
          "ml_config_choice": "single_lb_app",
          "origin_pool_choice": "default_pool",
          "slow_ddos_mitigation_choice": "system_default_timeouts",
          "threat_mesh_choice": "disable_threat_mesh",
          "trust_client_ip_headers_choice": "disable_trust_client_ip_headers",
          "user_id_choice": "user_id_client_ip"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewshttp_loadbalancerDomainConfiguration": {
        "type": "object",
        "description": "The Domain configuration message.",
        "title": "Configured API Domains",
        "x-displayname": "Domain Configuration.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.DomainConfiguration",
        "properties": {
          "allow_destructive_methods": {
            "type": "boolean",
            "description": "Enable to allow API Testing to execute against destructive methods. Use with caution as these may modify or DELETE data.",
            "title": "Destructive Methods",
            "format": "boolean",
            "x-displayname": "Use Destructive Methods (e.g., DELETE, PUT)",
            "x-f5xc-description-short": "Enable to allow API Testing to execute against destructive methods. Use with caution as these may modify or DELETE data.",
            "x-f5xc-description-medium": "Enable to allow API Testing to execute against destructive methods. Use with caution as these may modify or DELETE data.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "credentials": {
            "type": "array",
            "description": "Add credentials for API testing to use in the selected environment.",
            "title": "The Domain credentials",
            "items": {
              "$ref": "#/components/schemas/http_loadbalancerCredentials"
            },
            "x-displayname": "Credentials.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Add credentials for API testing to use in the selected environment.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "domain": {
            "type": "string",
            "description": "Add your testing environment domain. Be aware that running tests on a production domain can impact live applications, as API testing cannot distinguish between production and testing environments.",
            "title": "Domain",
            "maxLength": 256,
            "x-displayname": "Domain",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.vh_domain": "true"
            },
            "x-f5xc-example": "example.com",
            "x-f5xc-description-medium": "Add your testing environment domain. Be aware that running tests on a production domain can impact live applications, as API testing cannot distinguish between production and testing environments.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "format": "fqdn",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewshttp_loadbalancerDomainConfiguration",
          "required_fields": [
            "credentials",
            "domain"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"credentials\": [\n    {\n      \"credential_name\": \"example\"\n    }\n  ],\n  \"domain\": \"example.com\"\n}",
          "example_yaml": "credentials:\n- credential_name: example\ndomain: example.com"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewshttp_loadbalancerGetSpecType": {
        "type": "object",
        "description": "Shape of the HTTP load balancer specification.",
        "title": "GetSpecType",
        "x-displayname": "GET HTTP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-api_definition_choice": "[\"api_specification\",\"disable_api_definition\"]",
        "x-ves-oneof-field-api_discovery_choice": "[\"disable_api_discovery\",\"enable_api_discovery\"]",
        "x-ves-oneof-field-api_testing_choice": "[\"api_testing\",\"disable_api_testing\"]",
        "x-ves-oneof-field-bot_defense_choice": "[\"bot_defense\",\"bot_defense_advanced\",\"disable_bot_defense\"]",
        "x-ves-oneof-field-cache_options": "[\"caching_policy\",\"disable_caching\"]",
        "x-ves-oneof-field-challenge_type": "[\"captcha_challenge\",\"enable_challenge\",\"js_challenge\",\"no_challenge\",\"policy_based_challenge\"]",
        "x-ves-oneof-field-client_side_defense_choice": "[\"client_side_defense\",\"disable_client_side_defense\"]",
        "x-ves-oneof-field-hash_policy_choice": "[\"cookie_stickiness\",\"least_active\",\"random\",\"ring_hash\",\"round_robin\",\"source_ip_stickiness\"]",
        "x-ves-oneof-field-ip_reputation_choice": "[\"disable_ip_reputation\",\"enable_ip_reputation\"]",
        "x-ves-oneof-field-l7_ddos_auto_mitigation_action": "[\"l7_ddos_action_block\",\"l7_ddos_action_default\",\"l7_ddos_action_js_challenge\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"http\",\"https\",\"https_auto_cert\"]",
        "x-ves-oneof-field-malicious_user_detection_choice": "[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]",
        "x-ves-oneof-field-malware_protection": "[\"disable_malware_protection\",\"malware_protection_settings\"]",
        "x-ves-oneof-field-ml_config_choice": "[\"multi_lb_app\",\"single_lb_app\"]",
        "x-ves-oneof-field-origin_pool_choice": "[\"default_pool\",\"default_pool_list\"]",
        "x-ves-oneof-field-rate_limit_choice": "[\"api_rate_limit\",\"disable_rate_limit\",\"rate_limit\"]",
        "x-ves-oneof-field-sensitive_data_policy_choice": "[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-oneof-field-slow_ddos_mitigation_choice": "[\"slow_ddos_mitigation\",\"system_default_timeouts\"]",
        "x-ves-oneof-field-threat_mesh_choice": "[\"disable_threat_mesh\",\"enable_threat_mesh\"]",
        "x-ves-oneof-field-trust_client_ip_headers_choice": "[\"disable_trust_client_ip_headers\",\"enable_trust_client_ip_headers\"]",
        "x-ves-oneof-field-user_id_choice": "[\"user_id_client_ip\",\"user_identification\"]",
        "x-ves-oneof-field-waf_choice": "[\"app_firewall\",\"disable_waf\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.GetSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "add_location": {
            "type": "boolean",
            "description": "X-example: true\nAppends header x-F5 Distributed Cloud-location = <RE-site-name> in responses. This configuration\nis ignored on CE sites.",
            "format": "boolean",
            "x-displayname": "Add Location.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ],
            "x-f5xc-requires": [
              {
                "field": "advertise_where",
                "required": true,
                "reason": "advertise_custom requires advertise_where with min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "advertise_where.choice",
                "required": true,
                "reason": "Each where entry needs choice oneOf: site, virtual_site, vk8s_networks, virtual_network (400 without)"
              },
              {
                "field": "advertise_where",
                "required": true,
                "reason": "advertise_custom requires advertise_where with min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "advertise_where.choice",
                "required": true,
                "reason": "Each where entry needs choice oneOf: site, virtual_site, vk8s_networks, virtual_network (400 without)"
              }
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "api_protection_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIProtectionRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIRateLimit"
              }
            ],
            "x-f5xc-description-short": "Path- or API-group-scoped rate limiting.",
            "x-f5xc-description-medium": "Path- or API-group-scoped rate limiting. Define server_url_rules or api_endpoint_rules and choose inline_rate_limiter for an inline limit, or ref_rate_limiter for a stored rate-limiter reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Path- or API-group-scoped rate limiting. Define server_url_rules or api_endpoint_rules and choose inline_rate_limiter for an inline limit, or ref_rate_limiter for a stored rate-limiter reference.",
            "x-f5xc-conflicts-with": [
              "disable_rate_limit",
              "rate_limit"
            ]
          },
          "api_specification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPISpecificationSettings"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_definition"
            ]
          },
          "api_testing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerApiTesting"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_testing"
            ]
          },
          "app_firewall": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_waf"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "app_firewall",
                "field_path": "app_firewall",
                "gated_by": {
                  "choice": "waf_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "auto_cert_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAutoCertInfoType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for auto cert info.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "blocked_clients": {
            "type": "array",
            "description": "Define rules to block IP Prefixes or AS numbers.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Client Blocking Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define rules to block IP Prefixes or AS numbers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeBotDefenseType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot defense.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_defense_advanced",
              "disable_bot_defense"
            ],
            "x-f5xc-requires": [
              {
                "field": "policy.protected_app_endpoints",
                "required": true,
                "reason": "bot_defense.policy.protected_app_endpoints REQUIRED min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "policy.protected_app_endpoints.flow_label_choice",
                "required": true,
                "reason": "Each endpoint requires flow_label_choice oneOf: undefined_flow_label, flow_label (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints.mitigation",
                "required": true,
                "reason": "Each endpoint requires mitigation (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints",
                "required": true,
                "reason": "bot_defense.policy.protected_app_endpoints REQUIRED min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "policy.protected_app_endpoints.flow_label_choice",
                "required": true,
                "reason": "Each endpoint requires flow_label_choice oneOf: undefined_flow_label, flow_label (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints.mitigation",
                "required": true,
                "reason": "Each endpoint requires mitigation (400 without)"
              }
            ]
          },
          "bot_defense_advanced": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityBotDefenseAdvancedType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot defense advanced.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_defense",
              "disable_bot_defense"
            ]
          },
          "caching_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerCachingPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_caching"
            ]
          },
          "captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_challenge",
              "js_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "cert_state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCertificationState"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "client_side_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityClientSideDefenseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_client_side_defense"
            ],
            "x-f5xc-requires": [
              {
                "field": "client_side_defense",
                "requires_field": "resource:protected_domain (same namespace)",
                "requires_resource": {
                  "resource": "protected_domain",
                  "scope": "same_namespace"
                },
                "reason": "Client-Side Defense requires a protected_domain (eTLD+1) registered in the load balancer's OWN namespace — F5 XC generates the per-namespace CSD JS configuration from it. Enabling client_side_defense without one fails with 500 'Failed to get CSD JS Configuration for <tenant>. Please ensure the domain to protect is configured in Client-Side Defense before proceeding'. Verified via live API 2026-07."
              },
              {
                "field": "client_side_defense",
                "requires_field": "resource:protected_domain (same namespace)",
                "requires_resource": {
                  "resource": "protected_domain",
                  "scope": "same_namespace"
                },
                "reason": "Client-Side Defense requires a protected_domain (eTLD+1) registered in the load balancer's OWN namespace — F5 XC generates the per-namespace CSD JS configuration from it. Enabling client_side_defense without one fails with 500 'Failed to get CSD JS Configuration for <tenant>. Please ensure the domain to protect is configured in Client-Side Defense before proceeding'. Verified via live API 2026-07."
              }
            ]
          },
          "cookie_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeCookieForHashing"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for cookie stickiness.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "least_active",
              "random",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "cors_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCorsPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "csrf_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCsrfPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "data_guard_rules": {
            "type": "array",
            "description": "Data Guard prevents responses from exposing sensitive information by masking the data.\nThe system masks credit card numbers and social security numbers leaked from the application from within the HTTP response with a string of asterisks (*).\nNote: App Firewall should be enabled, to use Data Guard feature.",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policySimpleDataGuardRule"
            },
            "x-displayname": "Data Guard Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Data Guard prevents responses from exposing sensitive information by masking the data.",
            "x-f5xc-description-medium": "Data Guard prevents responses from exposing sensitive information by masking the data. The system masks credit card numbers and social security numbers leaked from the application from within the HTTP response with a string of asterisks (*).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "data_guard_rules",
                "requires_field": "spec.enable_waf",
                "reason": "Data Guard requires WAF to be enabled (400 when disable_waf is set)"
              },
              {
                "field": "data_guard_rules",
                "requires_field": "spec.enable_waf",
                "reason": "Data Guard requires WAF to be enabled (400 when disable_waf is set)"
              }
            ]
          },
          "ddos_mitigation_rules": {
            "type": "array",
            "description": "Define manual mitigation rules to block L7 DDoS attacks.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_securityDDoSMitigationRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "DDoS Mitigation Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define manual mitigation rules to block L7 DDoS attacks.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolGlobalSpecType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default pool.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_pool_list"
            ],
            "x-f5xc-requires": [
              {
                "field": "use_tls.tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400 without)"
              },
              {
                "field": "origin_servers",
                "required": true,
                "reason": "Inline pool requires at least one origin server",
                "min_items": 1
              },
              {
                "field": "port",
                "required": true
              },
              {
                "field": "use_tls.tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400 without)"
              },
              {
                "field": "origin_servers",
                "required": true,
                "reason": "Inline pool requires at least one origin server",
                "min_items": 1
              },
              {
                "field": "port",
                "required": true
              }
            ]
          },
          "default_pool_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsOriginPoolListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_pool"
            ]
          },
          "default_route_pools": {
            "type": "array",
            "description": "Origin Pools used when no route is specified (default route)",
            "maxItems": 8,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin Pools used when no route is specified (default route).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 8,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_sensitive_data_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "sensitive_data_policy"
            ]
          },
          "disable_api_definition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_specification"
            ]
          },
          "disable_api_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_api_discovery"
            ]
          },
          "disable_api_testing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_testing"
            ]
          },
          "disable_bot_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable bot defense.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "bot_defense",
              "bot_defense_advanced"
            ]
          },
          "disable_caching": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable caching.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "caching_policy"
            ]
          },
          "disable_client_side_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_side_defense"
            ]
          },
          "disable_ip_reputation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_ip_reputation"
            ]
          },
          "disable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_malicious_user_detection"
            ]
          },
          "disable_malware_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable malware protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "malware_protection_settings"
            ]
          },
          "disable_rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable rate limit.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_rate_limit",
              "rate_limit"
            ]
          },
          "disable_threat_mesh": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_threat_mesh"
            ]
          },
          "disable_trust_client_ip_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_trust_client_ip_headers"
            ]
          },
          "disable_waf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable waf.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "app_firewall"
            ]
          },
          "dns_info": {
            "type": "array",
            "description": "DNS information for this virtual host.",
            "items": {
              "$ref": "#/components/schemas/virtual_host_dns_infoDnsInfo"
            },
            "x-displayname": "DNS Information.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to load balancer.\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if the Loadbalancer type is HTTPS.\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to load balancer. Supported Domains and search order: 1.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to load balancer. Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "source": "minimum_configs",
              "itemFormat": "vh_domain",
              "description": "Domain list. Format: example.com[:port], *.example.com[:port]. Bare * rejected."
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "enable_api_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiDiscoverySetting__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_discovery"
            ]
          },
          "enable_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafEnableChallenge"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "js_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "enable_ip_reputation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_wafIPThreatCategoryListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_ip_reputation"
            ]
          },
          "enable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_malicious_user_detection"
            ]
          },
          "enable_threat_mesh": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_threat_mesh"
            ]
          },
          "enable_trust_client_ip_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostClientIPHeaders"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_trust_client_ip_headers"
            ]
          },
          "graphql_rules": {
            "type": "array",
            "description": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable\ndescription of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it\neasier to evolve APIs over time, and enables powerful developer tools. Policy configuration to analyze GraphQL\nqueries and prevent GraphQL tailored attacks.",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyGraphQLRule"
            },
            "x-displayname": "GraphQL Inspection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable description of the data in API.",
            "x-f5xc-description-medium": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable description of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it easier to evolve APIs over time, and enables powerful developer tools. Policy...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "host_name": {
            "type": "string",
            "description": "Internally generated host name to be used for the virtual host.",
            "x-displayname": "Host Name",
            "x-ves-example": "VES-I/o-00000000-0000-4000-8000-9694d5ee0763.ac.vh.ves.I/O.",
            "x-f5xc-example": "ves-io-00000000-0000-4000-8000-9694d5ee0763.ac.vh.F5 XC",
            "x-f5xc-description-short": "Internally generated host name to be used for the virtual host.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "host_name"
              },
              {
                "field": "host_name"
              }
            ]
          },
          "http": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttp"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "https",
              "https_auto_cert"
            ],
            "x-f5xc-requires": [
              {
                "field": "port",
                "required": true,
                "reason": "HTTP lb_type requires port_choice (400 when port omitted, unlike https_auto_cert)"
              },
              {
                "field": "port",
                "required": true,
                "reason": "HTTP lb_type requires port_choice (400 when port omitted, unlike https_auto_cert)"
              }
            ]
          },
          "https": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttps"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http",
              "https_auto_cert"
            ]
          },
          "https_auto_cert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttpsAutoCerts"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for https auto cert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http",
              "https"
            ]
          },
          "internet_vip_info": {
            "type": "array",
            "description": "Internet VIP Info.",
            "items": {
              "$ref": "#/components/schemas/viewsInternetVIPInfo"
            },
            "x-displayname": "Internet VIP Info.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "jwt_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafJWTValidation"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for jwt validation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "l7_ddos_action_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_default",
              "l7_ddos_action_js_challenge"
            ]
          },
          "l7_ddos_action_default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_block",
              "l7_ddos_action_js_challenge"
            ]
          },
          "l7_ddos_action_js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_block",
              "l7_ddos_action_default"
            ]
          },
          "l7_ddos_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerL7DDoSProtectionSettings"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for l7 ddos protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true
          },
          "least_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "random",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "malware_protection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityMalwareProtectionPolicy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for malware protection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_malware_protection"
            ]
          },
          "more_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerAdvancedOptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for more option.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "multi_lb_app": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for multi lb app.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "single_lb_app"
            ]
          },
          "no_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "js_challenge",
              "policy_based_challenge"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "origin_server_subset_rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerOriginServerSubsetRuleListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "policy_based_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_wafPolicyBasedChallenge"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for policy based challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "js_challenge",
              "no_challenge"
            ]
          },
          "protected_cookies": {
            "type": "array",
            "description": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.\nCookie Tampering Protection prevents attackers from modifying the value of session cookies.\nFor Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.\nThe configured mode of WAF (monitoring or blocking) will be enforced on the request when cookie tampering is identified.\nNote: We recommend enabling Secure and HttpOnly attributes along with cookie tampering protection.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaCookieManipulationOptionType"
            },
            "x-displayname": "Cookie Protection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.",
            "x-f5xc-description-medium": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses. Cookie Tampering Protection prevents attackers from modifying the value of session cookies. For Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafRateLimitConfigType"
              }
            ],
            "x-f5xc-example": "{\"requests_per_second\": 100}",
            "x-f5xc-description-short": "Load-balancer-wide per-client rate limiting.",
            "x-f5xc-description-medium": "Load-balancer-wide per-client rate limiting. The counter applies across every path; use api_rate_limit rules when only selected paths such as /login should be limited.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Load-balancer-wide per-client rate limiting. The counter applies across every path; use api_rate_limit rules when only selected paths such as /login should be limited.",
            "x-f5xc-conflicts-with": [
              "api_rate_limit",
              "disable_rate_limit"
            ],
            "x-f5xc-requires": [
              {
                "field": "rate_limiter.burst_multiplier",
                "required": true,
                "reason": "burst_multiplier MUST be > 0 (400: 'should be greater than 0')"
              },
              {
                "field": "rate_limiter.burst_multiplier",
                "required": true,
                "reason": "burst_multiplier MUST be > 0 (400: 'should be greater than 0')"
              }
            ]
          },
          "ring_hash": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerHashPolicyListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "ring_hash",
              "source_ip_stickiness"
            ]
          },
          "routes": {
            "type": "array",
            "description": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic\nto origin pool or redirect matching traffic to a different URL or respond directly to matching traffic.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/viewshttp_loadbalancerRouteType"
            },
            "x-displayname": "Routes",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic to origin pool or redirect matching...",
            "x-f5xc-description-medium": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic to origin pool or redirect matching traffic to a different URL or respond directly to matching traffic.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "simple_route.path",
                "required": true,
                "reason": "simple_route requires path (400: 'path should be not nil')"
              },
              {
                "field": "simple_route.origin_pools",
                "required": true,
                "reason": "simple_route requires at least one origin_pool (400: 'origin_pools should have minimum items of 1')",
                "min_items": 1
              },
              {
                "field": "direct_response_route.route_direct_response",
                "required": true,
                "reason": "direct_response_route requires route_direct_response (500 without: 'Route does not have action')"
              },
              {
                "field": "redirect_route.route_redirect",
                "required": true,
                "reason": "redirect_route requires route_redirect with at least proto_redirect"
              },
              {
                "field": "simple_route.path",
                "required": true,
                "reason": "simple_route requires path (400: 'path should be not nil')"
              },
              {
                "field": "simple_route.origin_pools",
                "required": true,
                "reason": "simple_route requires at least one origin_pool (400: 'origin_pools should have minimum items of 1')",
                "min_items": 1
              },
              {
                "field": "direct_response_route.route_direct_response",
                "required": true,
                "reason": "direct_response_route requires route_direct_response (500 without: 'Route does not have action')"
              },
              {
                "field": "redirect_route.route_redirect",
                "required": true,
                "reason": "redirect_route requires route_redirect with at least proto_redirect"
              }
            ]
          },
          "sensitive_data_disclosure_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerSensitiveDataDisclosureRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securitySensitiveDataPolicySettings"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_sensitive_data_policy"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "single_lb_app": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerSingleLoadBalancerAppSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for single lb app.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "multi_lb_app"
            ]
          },
          "slow_ddos_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostSlowDDoSMitigation"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "system_default_timeouts"
            ]
          },
          "source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "ring_hash",
              "round_robin"
            ]
          },
          "state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVirtualHostState"
              }
            ],
            "x-f5xc-example": "running",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_default_timeouts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for system default timeouts.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "slow_ddos_mitigation"
            ]
          },
          "trusted_clients": {
            "type": "array",
            "description": "Define rules to skip processing of one or more features such as WAF, Bot Defense etc. For clients.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Trusted Client Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define rules to skip processing of one or more features such as WAF, Bot Defense etc.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "actions",
                "required": true,
                "reason": "Trusted client entries require non-empty actions list (500 without)"
              },
              {
                "field": "actions",
                "required": true,
                "reason": "Trusted client entries require non-empty actions list (500 without)"
              }
            ]
          },
          "user_id_client_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "user_identification"
            ]
          },
          "user_identification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for user identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "user_id_client_ip"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "user_identification",
                "field_path": "user_identification",
                "gated_by": {
                  "choice": "user_id_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "waf_exclusion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafWafExclusion"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for waf exclusion.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of the HTTP load balancer specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewshttp_loadbalancerGetSpecType",
          "required_fields": [
            "domains"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domains\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "domains:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "loadbalancer_type": "https_auto_cert",
          "advertise_choice": "advertise_on_public_default_vip",
          "waf_choice": "disable_waf",
          "challenge_type": "no_challenge",
          "rate_limit_choice": "disable_rate_limit",
          "user_identification_choice": "user_id_client_ip",
          "hash_policy_choice": "round_robin",
          "service_policy_choice": "service_policies_from_namespace",
          "sensitive_data_policy_choice": "default_sensitive_data_policy",
          "api_definition_choice": "disable_api_definition",
          "api_discovery_choice": "disable_api_discovery",
          "api_testing_choice": "disable_api_testing",
          "bot_defense_choice": "disable_bot_defense",
          "cache_options": "disable_caching",
          "client_side_defense_choice": "disable_client_side_defense",
          "ip_reputation_choice": "disable_ip_reputation",
          "l7_ddos_auto_mitigation_action": "l7_ddos_action_default",
          "malicious_user_detection_choice": "disable_malicious_user_detection",
          "malware_protection": "disable_malware_protection",
          "ml_config_choice": "single_lb_app",
          "origin_pool_choice": "default_pool",
          "slow_ddos_mitigation_choice": "system_default_timeouts",
          "threat_mesh_choice": "disable_threat_mesh",
          "trust_client_ip_headers_choice": "disable_trust_client_ip_headers",
          "user_id_choice": "user_id_client_ip"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewshttp_loadbalancerMirrorPolicyType": {
        "type": "object",
        "description": "MirrorPolicy is used for shadowing traffic from one origin pool to another. The approach used\nis \"fire and forget\", meaning it will not wait for the shadow origin pool to\nrespond before returning the response from the primary origin pool. All normal statistics are\ncollected for the shadow origin pool making this feature useful for testing and troubleshooting.",
        "title": "MirrorPolicyType",
        "x-displayname": "Mirror Policy.",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.MirrorPolicyType",
        "properties": {
          "origin_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for origin pool.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "origin_pool",
                "field_path": "origin_pool",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "percent": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaFractionalPercent"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "MirrorPolicy is used for shadowing traffic from one origin pool to another.",
        "x-f5xc-description-medium": "MirrorPolicy is used for shadowing traffic from one origin pool to another. The approach used is \"fire and forget\", meaning it will not wait for the shadow origin pool to respond before returning the response from the primary origin pool. All normal statistics are collected for the shadow origin...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewshttp_loadbalancerMirrorPolicyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewshttp_loadbalancerReplaceSpecType": {
        "type": "object",
        "description": "Shape of the HTTP load balancer specification.",
        "title": "ReplaceSpecType",
        "x-displayname": "Replace HTTP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-api_definition_choice": "[\"api_specification\",\"disable_api_definition\"]",
        "x-ves-oneof-field-api_discovery_choice": "[\"disable_api_discovery\",\"enable_api_discovery\"]",
        "x-ves-oneof-field-api_testing_choice": "[\"api_testing\",\"disable_api_testing\"]",
        "x-ves-oneof-field-bot_defense_choice": "[\"bot_defense\",\"bot_defense_advanced\",\"disable_bot_defense\"]",
        "x-ves-oneof-field-cache_options": "[\"caching_policy\",\"disable_caching\"]",
        "x-ves-oneof-field-challenge_type": "[\"captcha_challenge\",\"enable_challenge\",\"js_challenge\",\"no_challenge\",\"policy_based_challenge\"]",
        "x-ves-oneof-field-client_side_defense_choice": "[\"client_side_defense\",\"disable_client_side_defense\"]",
        "x-ves-oneof-field-hash_policy_choice": "[\"cookie_stickiness\",\"least_active\",\"random\",\"ring_hash\",\"round_robin\",\"source_ip_stickiness\"]",
        "x-ves-oneof-field-ip_reputation_choice": "[\"disable_ip_reputation\",\"enable_ip_reputation\"]",
        "x-ves-oneof-field-l7_ddos_auto_mitigation_action": "[\"l7_ddos_action_block\",\"l7_ddos_action_default\",\"l7_ddos_action_js_challenge\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"http\",\"https\",\"https_auto_cert\"]",
        "x-ves-oneof-field-malicious_user_detection_choice": "[\"disable_malicious_user_detection\",\"enable_malicious_user_detection\"]",
        "x-ves-oneof-field-malware_protection": "[\"disable_malware_protection\",\"malware_protection_settings\"]",
        "x-ves-oneof-field-ml_config_choice": "[\"multi_lb_app\",\"single_lb_app\"]",
        "x-ves-oneof-field-origin_pool_choice": "[\"default_pool\",\"default_pool_list\"]",
        "x-ves-oneof-field-rate_limit_choice": "[\"api_rate_limit\",\"disable_rate_limit\",\"rate_limit\"]",
        "x-ves-oneof-field-sensitive_data_policy_choice": "[\"default_sensitive_data_policy\",\"sensitive_data_policy\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-oneof-field-slow_ddos_mitigation_choice": "[\"slow_ddos_mitigation\",\"system_default_timeouts\"]",
        "x-ves-oneof-field-threat_mesh_choice": "[\"disable_threat_mesh\",\"enable_threat_mesh\"]",
        "x-ves-oneof-field-trust_client_ip_headers_choice": "[\"disable_trust_client_ip_headers\",\"enable_trust_client_ip_headers\"]",
        "x-ves-oneof-field-user_id_choice": "[\"user_id_client_ip\",\"user_identification\"]",
        "x-ves-oneof-field-waf_choice": "[\"app_firewall\",\"disable_waf\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.ReplaceSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "add_location": {
            "type": "boolean",
            "description": "X-example: true\nAppends header x-F5 Distributed Cloud-location = <RE-site-name> in responses. This configuration\nis ignored on CE sites.",
            "format": "boolean",
            "x-displayname": "Add Location.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ],
            "x-f5xc-requires": [
              {
                "field": "advertise_where",
                "required": true,
                "reason": "advertise_custom requires advertise_where with min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "advertise_where.choice",
                "required": true,
                "reason": "Each where entry needs choice oneOf: site, virtual_site, vk8s_networks, virtual_network (400 without)"
              },
              {
                "field": "advertise_where",
                "required": true,
                "reason": "advertise_custom requires advertise_where with min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "advertise_where.choice",
                "required": true,
                "reason": "Each where entry needs choice oneOf: site, virtual_site, vk8s_networks, virtual_network (400 without)"
              }
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "api_protection_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIProtectionRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPIRateLimit"
              }
            ],
            "x-f5xc-description-short": "Path- or API-group-scoped rate limiting.",
            "x-f5xc-description-medium": "Path- or API-group-scoped rate limiting. Define server_url_rules or api_endpoint_rules and choose inline_rate_limiter for an inline limit, or ref_rate_limiter for a stored rate-limiter reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Path- or API-group-scoped rate limiting. Define server_url_rules or api_endpoint_rules and choose inline_rate_limiter for an inline limit, or ref_rate_limiter for a stored rate-limiter reference.",
            "x-f5xc-conflicts-with": [
              "disable_rate_limit",
              "rate_limit"
            ]
          },
          "api_specification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafAPISpecificationSettings"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_definition"
            ]
          },
          "api_testing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerApiTesting"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_testing"
            ]
          },
          "app_firewall": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_waf"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "app_firewall",
                "field_path": "app_firewall",
                "gated_by": {
                  "choice": "waf_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "blocked_clients": {
            "type": "array",
            "description": "Define rules to block IP Prefixes or AS numbers.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Client Blocking Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define rules to block IP Prefixes or AS numbers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityShapeBotDefenseType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot defense.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_defense_advanced",
              "disable_bot_defense"
            ],
            "x-f5xc-requires": [
              {
                "field": "policy.protected_app_endpoints",
                "required": true,
                "reason": "bot_defense.policy.protected_app_endpoints REQUIRED min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "policy.protected_app_endpoints.flow_label_choice",
                "required": true,
                "reason": "Each endpoint requires flow_label_choice oneOf: undefined_flow_label, flow_label (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints.mitigation",
                "required": true,
                "reason": "Each endpoint requires mitigation (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints",
                "required": true,
                "reason": "bot_defense.policy.protected_app_endpoints REQUIRED min_items:1 (400 without)",
                "min_items": 1
              },
              {
                "field": "policy.protected_app_endpoints.flow_label_choice",
                "required": true,
                "reason": "Each endpoint requires flow_label_choice oneOf: undefined_flow_label, flow_label (400 without)"
              },
              {
                "field": "policy.protected_app_endpoints.mitigation",
                "required": true,
                "reason": "Each endpoint requires mitigation (400 without)"
              }
            ]
          },
          "bot_defense_advanced": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityBotDefenseAdvancedType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bot defense advanced.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_defense",
              "disable_bot_defense"
            ]
          },
          "caching_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerCachingPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_caching"
            ]
          },
          "captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_challenge",
              "js_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "client_side_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityClientSideDefenseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_client_side_defense"
            ],
            "x-f5xc-requires": [
              {
                "field": "client_side_defense",
                "requires_field": "resource:protected_domain (same namespace)",
                "requires_resource": {
                  "resource": "protected_domain",
                  "scope": "same_namespace"
                },
                "reason": "Client-Side Defense requires a protected_domain (eTLD+1) registered in the load balancer's OWN namespace — F5 XC generates the per-namespace CSD JS configuration from it. Enabling client_side_defense without one fails with 500 'Failed to get CSD JS Configuration for <tenant>. Please ensure the domain to protect is configured in Client-Side Defense before proceeding'. Verified via live API 2026-07."
              },
              {
                "field": "client_side_defense",
                "requires_field": "resource:protected_domain (same namespace)",
                "requires_resource": {
                  "resource": "protected_domain",
                  "scope": "same_namespace"
                },
                "reason": "Client-Side Defense requires a protected_domain (eTLD+1) registered in the load balancer's OWN namespace — F5 XC generates the per-namespace CSD JS configuration from it. Enabling client_side_defense without one fails with 500 'Failed to get CSD JS Configuration for <tenant>. Please ensure the domain to protect is configured in Client-Side Defense before proceeding'. Verified via live API 2026-07."
              }
            ]
          },
          "cookie_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/routeCookieForHashing"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for cookie stickiness.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "least_active",
              "random",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "cors_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCorsPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "csrf_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCsrfPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "data_guard_rules": {
            "type": "array",
            "description": "Data Guard prevents responses from exposing sensitive information by masking the data.\nThe system masks credit card numbers and social security numbers leaked from the application from within the HTTP response with a string of asterisks (*).\nNote: App Firewall should be enabled, to use Data Guard feature.",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policySimpleDataGuardRule"
            },
            "x-displayname": "Data Guard Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Data Guard prevents responses from exposing sensitive information by masking the data.",
            "x-f5xc-description-medium": "Data Guard prevents responses from exposing sensitive information by masking the data. The system masks credit card numbers and social security numbers leaked from the application from within the HTTP response with a string of asterisks (*).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "data_guard_rules",
                "requires_field": "spec.enable_waf",
                "reason": "Data Guard requires WAF to be enabled (400 when disable_waf is set)"
              },
              {
                "field": "data_guard_rules",
                "requires_field": "spec.enable_waf",
                "reason": "Data Guard requires WAF to be enabled (400 when disable_waf is set)"
              }
            ]
          },
          "ddos_mitigation_rules": {
            "type": "array",
            "description": "Define manual mitigation rules to block L7 DDoS attacks.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_securityDDoSMitigationRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "DDoS Mitigation Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define manual mitigation rules to block L7 DDoS attacks.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_pool": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolGlobalSpecType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default pool.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_pool_list"
            ],
            "x-f5xc-requires": [
              {
                "field": "use_tls.tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400 without)"
              },
              {
                "field": "origin_servers",
                "required": true,
                "reason": "Inline pool requires at least one origin server",
                "min_items": 1
              },
              {
                "field": "port",
                "required": true
              },
              {
                "field": "use_tls.tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400 without)"
              },
              {
                "field": "origin_servers",
                "required": true,
                "reason": "Inline pool requires at least one origin server",
                "min_items": 1
              },
              {
                "field": "port",
                "required": true
              }
            ]
          },
          "default_pool_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsOriginPoolListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_pool"
            ]
          },
          "default_route_pools": {
            "type": "array",
            "description": "Origin Pools used when no route is specified (default route)",
            "maxItems": 8,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "8",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin Pools used when no route is specified (default route).",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 8,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_sensitive_data_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "sensitive_data_policy"
            ]
          },
          "disable_api_definition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_specification"
            ]
          },
          "disable_api_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_api_discovery"
            ]
          },
          "disable_api_testing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_testing"
            ]
          },
          "disable_bot_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable bot defense.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "bot_defense",
              "bot_defense_advanced"
            ]
          },
          "disable_caching": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable caching.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "caching_policy"
            ]
          },
          "disable_client_side_defense": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_side_defense"
            ]
          },
          "disable_ip_reputation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_ip_reputation"
            ]
          },
          "disable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_malicious_user_detection"
            ]
          },
          "disable_malware_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable malware protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "malware_protection_settings"
            ]
          },
          "disable_rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable rate limit.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "api_rate_limit",
              "rate_limit"
            ]
          },
          "disable_threat_mesh": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_threat_mesh"
            ]
          },
          "disable_trust_client_ip_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_trust_client_ip_headers"
            ]
          },
          "disable_waf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable waf.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "app_firewall"
            ]
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to load balancer.\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if the Loadbalancer type is HTTPS.\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to load balancer. Supported Domains and search order: 1.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to load balancer. Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true,
              "source": "minimum_configs",
              "itemFormat": "vh_domain",
              "description": "Domain list. Format: example.com[:port], *.example.com[:port]. Bare * rejected."
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "enable_api_discovery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafApiDiscoverySetting__ves_io_schema_views_cdn_loadbalancer"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_api_discovery"
            ]
          },
          "enable_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafEnableChallenge"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "js_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "enable_ip_reputation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_wafIPThreatCategoryListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_ip_reputation"
            ]
          },
          "enable_malicious_user_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable malicious user detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_malicious_user_detection"
            ]
          },
          "enable_threat_mesh": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_threat_mesh"
            ]
          },
          "enable_trust_client_ip_headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostClientIPHeaders"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_trust_client_ip_headers"
            ]
          },
          "graphql_rules": {
            "type": "array",
            "description": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable\ndescription of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it\neasier to evolve APIs over time, and enables powerful developer tools. Policy configuration to analyze GraphQL\nqueries and prevent GraphQL tailored attacks.",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyGraphQLRule"
            },
            "x-displayname": "GraphQL Inspection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable description of the data in API.",
            "x-f5xc-description-medium": "GraphQL is a query language and server-side runtime for APIs which provides a complete and understandable description of the data in API. GraphQL gives clients the power to ask for exactly what they need, makes it easier to evolve APIs over time, and enables powerful developer tools. Policy...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttp"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "https",
              "https_auto_cert"
            ],
            "x-f5xc-requires": [
              {
                "field": "port",
                "required": true,
                "reason": "HTTP lb_type requires port_choice (400 when port omitted, unlike https_auto_cert)"
              },
              {
                "field": "port",
                "required": true,
                "reason": "HTTP lb_type requires port_choice (400 when port omitted, unlike https_auto_cert)"
              }
            ]
          },
          "https": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttps"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http",
              "https_auto_cert"
            ]
          },
          "https_auto_cert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerProxyTypeHttpsAutoCerts"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for https auto cert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http",
              "https"
            ]
          },
          "js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "no_challenge",
              "policy_based_challenge"
            ]
          },
          "jwt_validation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafJWTValidation"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for jwt validation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "l7_ddos_action_block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_default",
              "l7_ddos_action_js_challenge"
            ]
          },
          "l7_ddos_action_default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_block",
              "l7_ddos_action_js_challenge"
            ]
          },
          "l7_ddos_action_js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "l7_ddos_action_block",
              "l7_ddos_action_default"
            ]
          },
          "l7_ddos_protection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerL7DDoSProtectionSettings"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for l7 ddos protection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true
          },
          "least_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "random",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "malware_protection_settings": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securityMalwareProtectionPolicy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for malware protection settings.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_malware_protection"
            ]
          },
          "more_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerAdvancedOptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for more option.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "multi_lb_app": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for multi lb app.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "single_lb_app"
            ]
          },
          "no_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "js_challenge",
              "policy_based_challenge"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "origin_server_subset_rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerOriginServerSubsetRuleListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "policy_based_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewscommon_wafPolicyBasedChallenge"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for policy based challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "enable_challenge",
              "js_challenge",
              "no_challenge"
            ]
          },
          "protected_cookies": {
            "type": "array",
            "description": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.\nCookie Tampering Protection prevents attackers from modifying the value of session cookies.\nFor Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.\nThe configured mode of WAF (monitoring or blocking) will be enforced on the request when cookie tampering is identified.\nNote: We recommend enabling Secure and HttpOnly attributes along with cookie tampering protection.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaCookieManipulationOptionType"
            },
            "x-displayname": "Cookie Protection.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses.",
            "x-f5xc-description-medium": "Allows setting attributes (SameSite, Secure, and HttpOnly) on cookies in responses. Cookie Tampering Protection prevents attackers from modifying the value of session cookies. For Cookie Tampering Protection, enabling a web app firewall (WAF) is a prerequisite.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "ring_hash",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "rate_limit": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafRateLimitConfigType"
              }
            ],
            "x-f5xc-example": "{\"requests_per_second\": 100}",
            "x-f5xc-description-short": "Load-balancer-wide per-client rate limiting.",
            "x-f5xc-description-medium": "Load-balancer-wide per-client rate limiting. The counter applies across every path; use api_rate_limit rules when only selected paths such as /login should be limited.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Load-balancer-wide per-client rate limiting. The counter applies across every path; use api_rate_limit rules when only selected paths such as /login should be limited.",
            "x-f5xc-conflicts-with": [
              "api_rate_limit",
              "disable_rate_limit"
            ],
            "x-f5xc-requires": [
              {
                "field": "rate_limiter.burst_multiplier",
                "required": true,
                "reason": "burst_multiplier MUST be > 0 (400: 'should be greater than 0')"
              },
              {
                "field": "rate_limiter.burst_multiplier",
                "required": true,
                "reason": "burst_multiplier MUST be > 0 (400: 'should be greater than 0')"
              }
            ]
          },
          "ring_hash": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerHashPolicyListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "round_robin",
              "source_ip_stickiness"
            ]
          },
          "round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "ring_hash",
              "source_ip_stickiness"
            ]
          },
          "routes": {
            "type": "array",
            "description": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic\nto origin pool or redirect matching traffic to a different URL or respond directly to matching traffic.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/viewshttp_loadbalancerRouteType"
            },
            "x-displayname": "Routes",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic to origin pool or redirect matching...",
            "x-f5xc-description-medium": "Routes allow users to define match condition on a path and/or HTTP method to either forward matching traffic to origin pool or redirect matching traffic to a different URL or respond directly to matching traffic.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "simple_route.path",
                "required": true,
                "reason": "simple_route requires path (400: 'path should be not nil')"
              },
              {
                "field": "simple_route.origin_pools",
                "required": true,
                "reason": "simple_route requires at least one origin_pool (400: 'origin_pools should have minimum items of 1')",
                "min_items": 1
              },
              {
                "field": "direct_response_route.route_direct_response",
                "required": true,
                "reason": "direct_response_route requires route_direct_response (500 without: 'Route does not have action')"
              },
              {
                "field": "redirect_route.route_redirect",
                "required": true,
                "reason": "redirect_route requires route_redirect with at least proto_redirect"
              },
              {
                "field": "simple_route.path",
                "required": true,
                "reason": "simple_route requires path (400: 'path should be not nil')"
              },
              {
                "field": "simple_route.origin_pools",
                "required": true,
                "reason": "simple_route requires at least one origin_pool (400: 'origin_pools should have minimum items of 1')",
                "min_items": 1
              },
              {
                "field": "direct_response_route.route_direct_response",
                "required": true,
                "reason": "direct_response_route requires route_direct_response (500 without: 'Route does not have action')"
              },
              {
                "field": "redirect_route.route_redirect",
                "required": true,
                "reason": "redirect_route requires route_redirect with at least proto_redirect"
              }
            ]
          },
          "sensitive_data_disclosure_rules": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerSensitiveDataDisclosureRules"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_securitySensitiveDataPolicySettings"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_sensitive_data_policy"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "single_lb_app": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerSingleLoadBalancerAppSetting"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for single lb app.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "multi_lb_app"
            ]
          },
          "slow_ddos_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostSlowDDoSMitigation"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "system_default_timeouts"
            ]
          },
          "source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_stickiness",
              "least_active",
              "random",
              "ring_hash",
              "round_robin"
            ]
          },
          "system_default_timeouts": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for system default timeouts.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "slow_ddos_mitigation"
            ]
          },
          "trusted_clients": {
            "type": "array",
            "description": "Define rules to skip processing of one or more features such as WAF, Bot Defense etc. For clients.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/common_wafSimpleClientSrcRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Trusted Client Rules.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define rules to skip processing of one or more features such as WAF, Bot Defense etc.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "actions",
                "required": true,
                "reason": "Trusted client entries require non-empty actions list (500 without)"
              },
              {
                "field": "actions",
                "required": true,
                "reason": "Trusted client entries require non-empty actions list (500 without)"
              }
            ]
          },
          "user_id_client_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "user_identification"
            ]
          },
          "user_identification": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for user identification.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "user_id_client_ip"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "user_identification",
                "field_path": "user_identification",
                "gated_by": {
                  "choice": "user_id_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "waf_exclusion": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafWafExclusion"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for waf exclusion.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of the HTTP load balancer specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewshttp_loadbalancerReplaceSpecType",
          "required_fields": [
            "domains"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domains\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "domains:\n- value"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "loadbalancer_type": "https_auto_cert",
          "advertise_choice": "advertise_on_public_default_vip",
          "waf_choice": "disable_waf",
          "challenge_type": "no_challenge",
          "rate_limit_choice": "disable_rate_limit",
          "user_identification_choice": "user_id_client_ip",
          "hash_policy_choice": "round_robin",
          "service_policy_choice": "service_policies_from_namespace",
          "sensitive_data_policy_choice": "default_sensitive_data_policy",
          "api_definition_choice": "disable_api_definition",
          "api_discovery_choice": "disable_api_discovery",
          "api_testing_choice": "disable_api_testing",
          "bot_defense_choice": "disable_bot_defense",
          "cache_options": "disable_caching",
          "client_side_defense_choice": "disable_client_side_defense",
          "ip_reputation_choice": "disable_ip_reputation",
          "l7_ddos_auto_mitigation_action": "l7_ddos_action_default",
          "malicious_user_detection_choice": "disable_malicious_user_detection",
          "malware_protection": "disable_malware_protection",
          "ml_config_choice": "single_lb_app",
          "origin_pool_choice": "default_pool",
          "slow_ddos_mitigation_choice": "system_default_timeouts",
          "threat_mesh_choice": "disable_threat_mesh",
          "trust_client_ip_headers_choice": "disable_trust_client_ip_headers",
          "user_id_choice": "user_id_client_ip"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewshttp_loadbalancerRouteType": {
        "type": "object",
        "description": "This defines various OPTIONS to define a route.",
        "title": "RouteType",
        "x-displayname": "Route Type.",
        "x-ves-oneof-field-choice": "[\"custom_route_object\",\"direct_response_route\",\"redirect_route\",\"simple_route\"]",
        "x-ves-oneof-field-route_state": "[\"route_state_disabled\",\"route_state_enabled\"]",
        "x-ves-proto-message": "ves.io.schema.views.http_loadbalancer.RouteType",
        "properties": {
          "custom_route_object": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerRouteTypeCustomRoute"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom route object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "direct_response_route",
              "redirect_route",
              "simple_route"
            ]
          },
          "direct_response_route": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerRouteTypeDirectResponse"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for direct response route.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_route_object",
              "redirect_route",
              "simple_route"
            ]
          },
          "redirect_route": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerRouteTypeRedirect"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for redirect route.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_route_object",
              "direct_response_route",
              "simple_route"
            ]
          },
          "route_state_disabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "route_state_enabled"
            ]
          },
          "route_state_enabled": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "route_state_disabled"
            ]
          },
          "simple_route": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerRouteTypeSimple"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for simple route.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_route_object",
              "direct_response_route",
              "redirect_route"
            ]
          }
        },
        "x-f5xc-description-short": "Defines various OPTIONS to define a route.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewshttp_loadbalancerRouteType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsorigin_poolGlobalSpecType": {
        "type": "object",
        "description": "Shape of the origin pool specification.",
        "title": "GlobalSpecType",
        "x-displayname": "Global Specification.",
        "x-ves-oneof-field-health_check_port_choice": "[\"health_check_port\",\"same_as_endpoint_port\"]",
        "x-ves-oneof-field-port_choice": "[\"automatic_port\",\"lb_port\",\"port\"]",
        "x-ves-oneof-field-tls_choice": "[\"no_tls\",\"use_tls\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.GlobalSpecType",
        "properties": {
          "advanced_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginPoolAdvancedOptions__ves_io_schema_views_http_loadbalancer"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advanced options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "automatic_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "lb_port",
              "port"
            ]
          },
          "endpoint_selection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterEndpointSelectionPolicy"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "DISTRIBUTED",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "DISTRIBUTED",
                "LOCAL_ONLY",
                "LOCAL_PREFERRED"
              ],
              "default": "DISTRIBUTED",
              "description": "Policy for selecting endpoints from local/remote sites"
            }
          },
          "health_check_port": {
            "type": "integer",
            "description": "Exclusive with [same_as_endpoint_port]\nPort used for performing health check.",
            "title": "Health check port",
            "format": "int64",
            "x-displayname": "Health check port.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [same_as_endpoint_port] Port used for performing health check.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "networking",
              "minimum": 0,
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "networking",
                "note": "Asymmetry: port enforces [1,65535], health_check_port allows 0",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "same_as_endpoint_port"
            ]
          },
          "healthcheck": {
            "type": "array",
            "description": "Reference to healthcheck configuration objects.",
            "title": "Health Check",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Health Check object.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "Reference to healthcheck configuration objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "lb_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "port"
            ]
          },
          "loadbalancer_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterLoadbalancerAlgorithm"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for loadbalancer algorithm.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "ROUND_ROBIN",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ROUND_ROBIN",
                "LEAST_REQUEST",
                "RING_HASH",
                "RANDOM",
                "LB_OVERRIDE"
              ],
              "default": "ROUND_ROBIN",
              "description": "Load balancing algorithm for distributing traffic"
            }
          },
          "no_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "use_tls"
            ]
          },
          "origin_servers": {
            "type": "array",
            "description": "List of origin servers in this pool.",
            "title": "List of Origin Servers",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/origin_poolOriginServerType"
            },
            "x-displayname": "Origin Servers.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "private_name.site_locator",
                "required": true,
                "reason": "private_name requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "private_ip.site_locator",
                "required": true,
                "reason": "private_ip requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "k8s_service.site_locator",
                "required": true,
                "reason": "k8s_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "consul_service.site_locator",
                "required": true,
                "reason": "consul_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "*.site_locator.choice",
                "required": true,
                "reason": "site_locator requires oneOf choice: site or virtual_site (400: 'choice should be not nil')"
              },
              {
                "field": "private_name.site_locator",
                "required": true,
                "reason": "private_name requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "private_ip.site_locator",
                "required": true,
                "reason": "private_ip requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "k8s_service.site_locator",
                "required": true,
                "reason": "k8s_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "consul_service.site_locator",
                "required": true,
                "reason": "consul_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "*.site_locator.choice",
                "required": true,
                "reason": "site_locator requires oneOf choice: site or virtual_site (400: 'choice should be not nil')"
              }
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [automatic_port lb_port]\nEndpoint service is available on this port.",
            "title": "Port",
            "format": "int64",
            "x-displayname": "Port",
            "x-ves-example": "9080",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "9080",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [automatic_port lb_port] Endpoint service is available on this port.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 443,
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "lb_port"
            ]
          },
          "same_as_endpoint_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "health_check_port"
            ]
          },
          "upstream_conn_pool_reuse_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamConnPoolReuseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolUpstreamTlsParameters"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_tls"
            ],
            "x-f5xc-requires": [
              {
                "field": "tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400: 'tls_config should be not nil')"
              },
              {
                "field": "use_mtls.tls_certificates",
                "required": true,
                "reason": "use_mtls requires at least one TLS certificate (400: 'tls_certificates should have minimum items of 1')",
                "min_items": 1
              },
              {
                "field": "tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400: 'tls_config should be not nil')"
              },
              {
                "field": "use_mtls.tls_certificates",
                "required": true,
                "reason": "use_mtls requires at least one TLS certificate (400: 'tls_certificates should have minimum items of 1')",
                "min_items": 1
              }
            ]
          },
          "view_internal": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for view internal.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "view_internal",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsorigin_poolGlobalSpecType",
          "required_fields": [
            "origin_servers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"origin_servers\": [\n    {}\n  ]\n}",
          "example_yaml": "origin_servers:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "port_choice": "port",
          "upstream_conn_pool_reuse": "enable_conn_pool_reuse",
          "health_check_port_choice": "same_as_endpoint_port",
          "tls_choice": "no_tls",
          "circuit_breaker_choice": "default_circuit_breaker",
          "outlier_detection_choice": "disable_outlier_detection",
          "panic_threshold_type": "no_panic_threshold",
          "subset_choice": "disable_subsets",
          "http_protocol_type": "auto_http_config",
          "proxy_protocol_choice": "disable_proxy_protocol",
          "lb_source_ip_persistence_choice": "disable_lb_source_ip_persistance"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "virtual_hostAutoCertInfoType": {
        "type": "object",
        "description": "Information related to auto certificate.",
        "title": "AutoCertInfoType",
        "x-displayname": "Auto Cert Information.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.AutoCertInfoType",
        "properties": {
          "auto_cert_expiry": {
            "type": "string",
            "description": "Auto certificate expiry timestamp.",
            "title": "Auto Cert Expiry Timestamp",
            "format": "date-time",
            "x-displayname": "Auto Cert Expiry Timestamp.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "auto_cert_issuer": {
            "type": "string",
            "description": "Issuer of the auto certificate.",
            "title": "Auto Cert Issuer",
            "x-displayname": "Auto Cert Issuer.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "auto_cert_state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCertificationState"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for auto cert state.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "auto_cert_subject": {
            "type": "string",
            "description": "Subject of the auto certificate.",
            "title": "Auto Cert Subject",
            "x-displayname": "Auto Cert Subject.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dns_records": {
            "type": "array",
            "description": "DNS Records that are to be added by user in their DNS domain.\nCurrently, this will be populated when auto certificates are\ndesired but DNS delegation is not enabled.",
            "title": "DNS Records",
            "items": {
              "$ref": "#/components/schemas/virtual_hostDNSRecord"
            },
            "x-displayname": "DNS Records.",
            "x-f5xc-description-short": "DNS Records that are to be added by user in their DNS domain.",
            "x-f5xc-description-medium": "DNS Records that are to be added by user in their DNS domain. Currently, this will be populated when auto certificates are desired but DNS delegation is not enabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Information related to auto certificate.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAutoCertInfoType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCaptchaChallengeType": {
        "type": "object",
        "description": "Enables loadbalancer to perform captcha challenge\n\nCaptcha challenge will be based on Google Recaptcha.\n\nWith this feature enabled, only clients that pass the captcha challenge will be allowed to\ncomplete the HTTP request.\n\nWhen loadbalancer is configured to do Captcha Challenge, it will redirect the browser to an\nHTML page on every new HTTP request. This HTML page will have captcha challenge embedded in it.\nClient will be allowed to make the request only if the captcha challenge is successful.\nLoadbalancer will tag response header with a cookie to avoid Captcha challenge for subsequent requests.\n\nCAPTCHA is mainly used as a security check to ensure only human users can pass through.\nGenerally, computers or bots are not capable of solving a captcha.\n\nYou can enable either Javascript challenge or Captcha challenge on a virtual host.",
        "title": "CaptchaChallengeType",
        "x-displayname": "Captcha Challenge Parameters.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CaptchaChallengeType",
        "properties": {
          "cookie_expiry": {
            "type": "integer",
            "description": "Cookie expiration period, in seconds.\nAn expired cookie causes the loadbalancer to issue a new challenge.",
            "title": "cookie_expiry",
            "format": "int64",
            "x-displayname": "Cookie Expiration Period.",
            "x-ves-example": "1000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-example": "1000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-description-short": "Cookie expiration period, in seconds. An expired cookie causes the loadbalancer to issue a new challenge.",
            "x-f5xc-description-medium": "Cookie expiration period, in seconds. An expired cookie causes the loadbalancer to issue a new challenge.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 86400,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "custom_page": {
            "type": "string",
            "description": "Custom message is of type uri_ref. Currently supported URL schemes is string:///.\nFor string:/// scheme, message needs to be encoded in Base64 format.\nYou can specify this message as base64 encoded plain text message e.g. \"Please Wait..\"\nor it can be HTML paragraph or a body string encoded as base64 string\nE.g. \"<p> Please Wait </p>\". Base64 encoded string for this HTML is \"PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"",
            "title": "custom_page",
            "maxLength": 65536,
            "x-displayname": "Custom message for Captcha Challenge.",
            "x-ves-example": "String:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-example": "string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Custom message is of type uri_ref. Currently supported URL schemes is string:///.",
            "x-f5xc-description-medium": "Custom message is of type uri_ref. Currently supported URL schemes is string:///. For string:/// scheme, message needs to be encoded in Base64 format.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 65536,
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Enables loadbalancer to perform captcha challenge Captcha challenge will be based on Google Recaptcha.",
        "x-f5xc-description-medium": "Enables loadbalancer to perform captcha challenge Captcha challenge will be based on Google Recaptcha. With this feature enabled, only clients that pass the captcha challenge will be allowed to complete the HTTP request. When loadbalancer is configured to do Captcha Challenge, it will redirect...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCaptchaChallengeType",
          "required_fields": [
            "cookie_expiry"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"cookie_expiry\": 1\n}",
          "example_yaml": "cookie_expiry: 1"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCertificationState": {
        "type": "string",
        "description": "State of auto certification generation for the virtual host\n\n- AutoCertDisabled: Auto Cert Disabled\n\nAuto Certification is disabled.\n- DnsDomainVerification: DNS Domain Verification\n\nAuto Certification is waiting for domain verification.\n- AutoCertStarted: Auto Cert Started\n\nAuto Certificate generation action has started.\n- PreDomainChallengePending: Pre Domain Challenge Pending\n\nThe domains in the virtual host configuration are not still verified. This requires\nthe _acme-challenge TXT record in the domain to have the correct TXT.\n- DomainChallengeStarted: Domain Challenge Started\n\nDomain challenge process started.\n- DomainChallengePending: Domain Challenge Pending\n\nThe domains in the virtual host configuration are being verified. This requires\nthe _acme-challenge TXT record in the domain to have the correct TXT.\n- DomainChallengeVerified: Domain Challenge Verified\n\nAll the domains in the virtual host have been verified.\n- AutoCertFinalize: Auto Cert Finalize\n\nCertificate generation order is Ready and Finalized.\n- CertificateInvalid: Certificate Invalid\n\nCertificate is invalid\n- CertificateValid: Certificate Valid\n\nValid certificate generated and tls_parameters are updated\n- AutoCertNotApplicable: Auto Cert Not Applicable\n\nAuto certificate not applicable because virtual host does not use TLS\n- AutoCertRateLimited: Auto Cert Rate Limited\n\nAuto certificate not available because CA has rate limited the request\n- AutoCertGenerationRetry: Auto Cert Generation Retry\n\nAuto certificate generate failed in the previous attempt, will be retried automatically\n- AutoCertError: Auto Cert Error\n\nError in Certificate generation\nDefault State for Vhost State with Auto Certificate\n- AutoCertAccountRateLimited: Auto Cert Account Rate Limited\n\nAuto certificate not available because CA has rate limited the request\n- AutoCertDomainRateLimited: Auto Cert Domain Rate Limited\n\nAuto certificate not available because CA has rate limited the request\n- CertificateExpired: Certificate Expired\n\nCertificate has expired.",
        "title": "Certification State",
        "enum": [
          "AutoCertDisabled",
          "DnsDomainVerification",
          "AutoCertStarted",
          "DomainChallengePending",
          "DomainChallengeVerified",
          "AutoCertFinalize",
          "CertificateInvalid",
          "CertificateValid",
          "AutoCertNotApplicable",
          "AutoCertRateLimited",
          "AutoCertGenerationRetry",
          "AutoCertError",
          "PreDomainChallengePending",
          "DomainChallengeStarted",
          "AutoCertInitialize",
          "AutoCertAccountRateLimited",
          "AutoCertDomainRateLimited",
          "CertificateExpired"
        ],
        "default": "AutoCertDisabled",
        "x-displayname": "Certification State.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.CertificationState",
        "x-f5xc-description-short": "State of auto certification generation for the virtual host - AutoCertDisabled: Auto Cert Disabled Auto Certification is disabled. ...",
        "x-f5xc-description-medium": "State of auto certification generation for the virtual host - AutoCertDisabled: Auto Cert Disabled Auto Certification is disabled. - DnsDomainVerification: DNS Domain Verification Auto Certification is waiting for domain verification. - AutoCertStarted: Auto Cert Started Auto Certificate...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCertificationState",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"AutoCertDisabled\"",
          "example_yaml": "AutoCertDisabled\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostClientIPHeaders": {
        "type": "object",
        "description": "List of Client IP Headers.",
        "title": "Trust Client IP Headers List Type",
        "x-displayname": "Trust Client IP Headers List.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.ClientIPHeaders",
        "properties": {
          "client_ip_headers": {
            "type": "array",
            "description": "Define the list of one or more Client IP Headers. Headers will be used in order from top to bottom, meaning\nif the first header is not present in the request, the system will proceed to check for the second header,\nand so on, until one of the listed headers is found. If none of the defined headers exist, or the value\nis not an IP address, then the system will use the source IP of the packet. If multiple defined headers with\ndifferent names are present in the request, the value of the first header name in the configuration will be used.\nIf multiple defined headers with the same name are present in the request, values of all those headers will be combined.\nThe system will read the right-most IP address from header, if there are multiple IP addresses in the header value.\nFor X-Forwarded-For header, the system will read the IP address(rightmost - 1), as the client IP.",
            "title": "Client IP Headers",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Client IP Headers.",
            "x-ves-example": "Client-IP-Header.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "Client-IP-Header",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Define the list of one or more Client IP Headers.",
            "x-f5xc-description-medium": "Define the list of one or more Client IP Headers. Headers will be used in order from top to bottom, meaning if the first header is not present in the request, the system will proceed to check for the second header, and so on, until one of the listed headers is found. If none of the defined...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 5,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostClientIPHeaders",
          "required_fields": [
            "client_ip_headers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"client_ip_headers\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "client_ip_headers:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCompressionType": {
        "type": "object",
        "description": "Enables loadbalancer to compress dispatched data from an upstream service upon client request.\nThe content is compressed and then sent to the client with the appropriate headers if either response and request allow.\nOnly GZIP compression is supported.\n\nBy default compression will be skipped when:\n\nA request does NOT contain accept-encoding header.\nA request includes accept-encoding header, but it does not contain “gzip” or “*”.\nA request includes accept-encoding with “gzip” or “*” with the weight “q=0”. Note that the “gzip” will have a higher weight then “*”. For example, if accept-encoding is “gzip;q=0,*;q=1”, the filter will not compress. But if the header is set to “*;q=0,gzip;q=1”, the filter will compress.\nA request whose accept-encoding header includes “identity”.\nA response contains a content-encoding header.\nA response contains a cache-control header whose value includes “no-transform”.\nA response contains a transfer-encoding header whose value includes “gzip”.\nA response does not contain a content-type value that matches one of the selected mime-types, which default to application/javascript, application/JSON, application/xhtml+XML, image/svg+XML, text/CSS, text/HTML, text/plain, text/XML.\nNeither content-length nor transfer-encoding headers are present in the response.\nResponse size is smaller than 30 bytes (only applicable when transfer-encoding is not chunked).\n\nWhen compression is applied:\n\nThe content-length is removed from response headers.\nResponse headers contain “transfer-encoding: chunked” and do not contain “content-encoding” header.\nThe “vary: accept-encoding” header is inserted on every response.\n\nGZIP Compression Level:\n\nA value which is optimal balance between speed of compression and amount of compression is chosen.",
        "title": "CompressionType",
        "x-displayname": "Compression Parameters.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CompressionType",
        "properties": {
          "content_length": {
            "type": "integer",
            "description": "Minimum response length, in bytes, which will trigger compression. The default value is 30.",
            "title": "content_length",
            "format": "int64",
            "x-displayname": "Content Length.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "30"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "30"
            },
            "x-f5xc-description-short": "Minimum response length, in bytes, which will trigger compression. The default value is 30.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 30,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "content_type": {
            "type": "array",
            "description": "Set of strings that allows specifying which mime-types yield compression\nWhen this field is not defined, compression will be applied\nto the following mime-types:\n\"application/javascript\"\n\"application/JSON\",\n\"application/xhtml+XML\"\n\"image/svg+XML\"\n\"text/CSS\"\n\"text/HTML\"\n\"text/plain\"\n\"text/XML\"",
            "title": "content_type",
            "maxItems": 50,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Content Type.",
            "x-ves-example": "Application/JSON.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "50",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "application/json",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "50",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Set of strings that allows specifying which mime-types yield compression When this field is not defined, compression will be applied to the...",
            "x-f5xc-description-medium": "Set of strings that allows specifying which mime-types yield compression When this field is not defined, compression will be applied to the following mime-types: \"application/javascript\" \"application/JSON\", \"application/xhtml+XML\" \"image/svg+XML\" \"text/CSS\" \"text/HTML\" \"text/plain\" \"text/XML\".",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 50,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_on_etag_header": {
            "type": "boolean",
            "description": "If true, disables compression when the response contains an etag header. When it is false,\nweak etags will be preserved and the ones that require strong validation will be removed.",
            "title": "disable_on_etag_header",
            "format": "boolean",
            "x-displayname": "Disable On Etag Header.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "If true, disables compression when the response contains an etag header.",
            "x-f5xc-description-medium": "If true, disables compression when the response contains an etag header. When it is false, weak etags will be preserved and the ones that require strong validation will be removed.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "remove_accept_encoding_header": {
            "type": "boolean",
            "description": "If true, removes accept-encoding from the request headers before dispatching it to the upstream\nso that responses do not GET compressed before reaching the filter.",
            "title": "remove_accept_encoding_header",
            "format": "boolean",
            "x-displayname": "Remove Accept-Encoding Header.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "If true, removes accept-encoding from the request headers before dispatching it to the upstream so that responses do not GET compressed before...",
            "x-f5xc-description-medium": "If true, removes accept-encoding from the request headers before dispatching it to the upstream so that responses do not GET compressed before reaching the filter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Enables loadbalancer to compress dispatched data from an upstream service upon client request.",
        "x-f5xc-description-medium": "Enables loadbalancer to compress dispatched data from an upstream service upon client request. The content is compressed and then sent to the client with the appropriate headers if either response and request allow. Only GZIP compression is supported.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCompressionType",
          "required_fields": [
            "content_length"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"content_length\": 30\n}",
          "example_yaml": "content_length: 30"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostDNSRecord": {
        "type": "object",
        "description": "Defines a DNS record.",
        "title": "DNSRecord",
        "x-displayname": "DNS Record.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.DNSRecord",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the DNS record.",
            "title": "Name",
            "x-displayname": "Name",
            "x-f5xc-example": "example-resource",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "type": {
            "type": "string",
            "description": "Type of the DNS record.",
            "title": "Type",
            "x-displayname": "Type",
            "x-ves-example": "CNAME",
            "x-f5xc-example": "CNAME",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "DNS record Value.",
            "title": "Value",
            "x-displayname": "Value",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostDNSRecord",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostDNSVHostStatusType": {
        "type": "object",
        "description": "DNS related Virtual Host status.",
        "title": "DNS Virtual Host Status Type",
        "x-displayname": "DNS Virtual Host Status.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.DNSVHostStatusType",
        "properties": {
          "error_description": {
            "type": "string",
            "description": "Description of error during DNS configuration.",
            "title": "Error Description",
            "x-displayname": "Error Description.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "Description of error during DNS configuration.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "existing_certificate_state": {
            "type": "string",
            "description": "Status of Existing Auto Certificate.",
            "title": "Existing Certificate Status",
            "x-displayname": "Existing Certificate Status.",
            "x-ves-example": "Certificate Valid or Certificate Expired or Certificate Invalid.",
            "x-f5xc-example": "Certificate Valid or Certificate Expired or Certificate Invalid",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "renew_certificate_state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCertificationState"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for renew certificate state.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVirtualHostState"
              }
            ],
            "x-f5xc-example": "running",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "suggested_action": {
            "type": "string",
            "description": "Suggested action for customer on error.",
            "title": "Suggested Action",
            "x-displayname": "Suggested Action.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostDNSVHostStatusType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostHttpProtocolOptions": {
        "type": "object",
        "description": "HTTP protocol configuration OPTIONS for downstream connections.",
        "title": "HttpProtocolOptions",
        "x-displayname": "HTTP Protocol Configuration OPTIONS.",
        "x-ves-displayorder": "1",
        "x-ves-oneof-field-http_protocol_choice": "[\"http_protocol_enable_v1_only\",\"http_protocol_enable_v1_v2\",\"http_protocol_enable_v2_only\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.HttpProtocolOptions",
        "properties": {
          "http_protocol_enable_v1_only": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostHttp1ProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol enable v1 only.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_protocol_enable_v1_v2",
              "http_protocol_enable_v2_only"
            ]
          },
          "http_protocol_enable_v1_v2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol enable v1 v2.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_protocol_enable_v1_only",
              "http_protocol_enable_v2_only"
            ]
          },
          "http_protocol_enable_v2_only": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol enable v2 only.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_protocol_enable_v1_only",
              "http_protocol_enable_v1_v2"
            ]
          }
        },
        "x-f5xc-description-short": "HTTP protocol configuration OPTIONS for downstream connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostHttpProtocolOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostJavascriptChallengeType": {
        "type": "object",
        "description": "Enables loadbalancer to perform client browser compatibility test by redirecting to a page\nwith Javascript.\n\nWith this feature enabled, only clients that are capable of executing Javascript(mostly browsers)\nwill be allowed to complete the HTTP request.\n\nWhen loadbalancer is configured to do Javascript Challenge, it will redirect the browser to an\nHTML page on every new HTTP request. This HTML page will have Javascript embedded in it.\nLoadbalancer chooses a set of random numbers for every new client and sends these numbers along with an\nencrypted answer with the request such that it embed these numbers as input in the Javascript.\nJavascript will run on the requester browser and perform a complex Math operation.\nScript will submit the answer to loadbalancer. Loadbalancer will validate the answer by comparing the calculated\nanswer with the decrypted answer (which was encrypted when it was sent back as reply) and allow\nthe request to the upstream server only if the answer is correct.\nLoadbalancer will tag response header with a cookie to avoid Javascript challenge for subsequent requests.\n\nJavascript challenge serves following purposes\n * Validate that the request is coming via a browser that is capable for running Javascript\n * Force the browser to run a complex operation, f(X), that requires it to spend a large number\nof CPU cycles. This is to slow down a potential DoS attacker by making it difficult to launch\na large request flood without having to spend even larger CPU cost at their end.\n\nYou can enable either Javascript challenge or Captcha challenge on a virtual host.",
        "title": "JavascriptChallengeType",
        "x-displayname": "Javascript Challenge Parameters.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.JavascriptChallengeType",
        "properties": {
          "cookie_expiry": {
            "type": "integer",
            "description": "Cookie expiration period, in seconds.\nAn expired cookie causes the loadbalancer to issue a new challenge.",
            "title": "cookie_expiry",
            "format": "int64",
            "x-displayname": "Cookie Expiration Period.",
            "x-ves-example": "1000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-example": "1000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-description-short": "Cookie expiration period, in seconds. An expired cookie causes the loadbalancer to issue a new challenge.",
            "x-f5xc-description-medium": "Cookie expiration period, in seconds. An expired cookie causes the loadbalancer to issue a new challenge.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 86400,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "source": "minimum_configs",
              "description": "JS challenge cookie expiry in seconds (min 1)"
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "custom_page": {
            "type": "string",
            "description": "Custom message is of type uri_ref. Currently supported URL schemes is string:///.\nFor string:/// scheme, message needs to be encoded in Base64 format.\nYou can specify this message as base64 encoded plain text message e.g. \"Please Wait..\"\nor it can be HTML paragraph or a body string encoded as base64 string\nE.g. \"<p> Please Wait </p>\". Base64 encoded string for this HTML is \"PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"",
            "title": "custom_page",
            "maxLength": 65536,
            "x-displayname": "Custom Message for Javascript Challenge.",
            "x-ves-example": "String:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-example": "string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Custom message is of type uri_ref. Currently supported URL schemes is string:///.",
            "x-f5xc-description-medium": "Custom message is of type uri_ref. Currently supported URL schemes is string:///. For string:/// scheme, message needs to be encoded in Base64 format.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 65536,
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "js_script_delay": {
            "type": "integer",
            "description": "Delay introduced by Javascript, in milliseconds.",
            "title": "js_script_delay",
            "format": "int64",
            "x-displayname": "Javascript Delay.",
            "x-ves-example": "1000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1000",
              "ves.io.schema.rules.uint32.lte": "60000"
            },
            "x-f5xc-example": "1000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1000",
              "ves.io.schema.rules.uint32.lte": "60000"
            },
            "x-f5xc-description-short": "Delay introduced by Javascript, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1000,
              "maximum": 60000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "source": "minimum_configs",
              "description": "JS challenge script delay in milliseconds (min 1000)"
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Enables loadbalancer to perform client browser compatibility test by redirecting to a page with Javascript.",
        "x-f5xc-description-medium": "Enables loadbalancer to perform client browser compatibility test by redirecting to a page with Javascript. With this feature enabled, only clients that are capable of executing Javascript(mostly browsers) will be allowed to complete the HTTP request. When loadbalancer is configured to do...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostJavascriptChallengeType",
          "required_fields": [
            "cookie_expiry",
            "js_script_delay"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"cookie_expiry\": 1,\n  \"js_script_delay\": 1000\n}",
          "example_yaml": "cookie_expiry: 1\njs_script_delay: 1000"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostSlowDDoSMitigation": {
        "type": "object",
        "description": "\"Slow and low\" attacks tie up server resources, leaving none available for servicing\nrequests from actual users.",
        "title": "Slow DDoS Mitigation",
        "x-displayname": "Slow DDoS Mitigation.",
        "x-ves-oneof-field-request_timeout_choice": "[\"disable_request_timeout\",\"request_timeout\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.SlowDDoSMitigation",
        "properties": {
          "disable_request_timeout": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable request timeout.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "request_timeout"
            ]
          },
          "request_headers_timeout": {
            "type": "integer",
            "description": "The amount of time the client has to send only the headers on the request stream before\nthe stream is cancelled. The default value is 10000 milliseconds. This setting\nprovides protection against Slowloris attacks.",
            "title": "Request Headers Timeout",
            "format": "int64",
            "x-displayname": "Request Headers Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2000",
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2000",
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-description-short": "The amount of time the client has to send only the headers on the request stream before the stream is cancelled.",
            "x-f5xc-description-medium": "The amount of time the client has to send only the headers on the request stream before the stream is cancelled. The default value is 10000 milliseconds. This setting provides protection against Slowloris attacks.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 2000,
              "maximum": 30000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "request_timeout": {
            "type": "integer",
            "description": "Exclusive with [disable_request_timeout]",
            "title": "Custom Timeout",
            "format": "int64",
            "x-displayname": "Custom Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2000",
              "ves.io.schema.rules.uint32.lte": "300000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "2000",
              "ves.io.schema.rules.uint32.lte": "300000"
            },
            "x-f5xc-description-short": "Exclusive with [disable_request_timeout].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 2000,
              "maximum": 300000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_request_timeout"
            ]
          }
        },
        "x-f5xc-description-short": "\"Slow and low\" attacks tie up server resources, leaving none available for servicing requests from actual users.",
        "x-f5xc-description-medium": "\"Slow and low\" attacks tie up server resources, leaving none available for servicing requests from actual users.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostSlowDDoSMitigation",
          "required_fields": [
            "request_headers_timeout"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"request_headers_timeout\": 2000\n}",
          "example_yaml": "request_headers_timeout: 2000"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostTemporaryUserBlockingType": {
        "type": "object",
        "description": "Specifies configuration for temporary user blocking resulting from user behavior analysis.\n\nWhen Malicious User Mitigation is enabled from service policy rules, users' accessing the application will be analyzed for\nmalicious activity and the configured mitigation actions will be taken on identified malicious users.\nThese mitigation actions include setting up temporary blocking on that user.\nThis configuration specifies settings on how that blocking should be done by the loadbalancer.",
        "title": "TemporaryUserBlockingType",
        "x-displayname": "Temporary User Blocking.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.TemporaryUserBlockingType",
        "properties": {
          "custom_page": {
            "type": "string",
            "description": "Custom message is of type `uri_ref`. Currently supported URL schemes is `string:///`.\nFor `string:///` scheme, message needs to be encoded in Base64 format.\nYou can specify this message as base64 encoded plain text message e.g. \"Blocked..\"\nor it can be HTML paragraph or a body string encoded as base64 string\nE.g. \"<p> Blocked </p>\". Base64 encoded string for this HTML is \"PHA+IFBsZWFzZSBXYWl0IDwvcD4=\"",
            "title": "custom_page",
            "maxLength": 65536,
            "x-displayname": "Custom Message for Temporary Blocking.",
            "x-ves-example": "String:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-example": "string:///PHA+IFBsZWFzZSBXYWl0IDwvcD4=",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "65536",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Custom message is of type . Currently supported URL schemes is .",
            "x-f5xc-description-medium": "Custom message is of type . Currently supported URL schemes is . For scheme, message needs to be encoded in Base64 format. You can specify this message as base64 encoded plain text message e.g. \"Blocked..\" or it can be HTML paragraph or a body string encoded as base64 string E.g. \"<p> Blocked...",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 65536,
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies configuration for temporary user blocking resulting from user behavior analysis.",
        "x-f5xc-description-medium": "Specifies configuration for temporary user blocking resulting from user behavior analysis. When Malicious User Mitigation is enabled from service policy rules, users' accessing the application will be analyzed for malicious activity and the configured mitigation actions will be taken on...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostTemporaryUserBlockingType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "tenant_and_identity",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVirtualHostState": {
        "type": "string",
        "description": "State of the virtual host\n\n- VIRTUAL_HOST_READY: VIRTUAL_HOST_READY\n\nVirtual host is ready to install\n- VIRTUAL_HOST_PENDING_VERIFICATION: VIRTUAL_HOST_PENDING_VERIFICATION\n\nVirtual host is verification pending for some or all of its domains\n- VIRTUAL_HOST_VERIFICATION_FAILED: VIRTUAL_HOST_VERIFICATION_FAILED\n\nVirtual host has one or more domains for which verification failed\n- VIRTUAL_HOST_PENDING_DNS_DELEGATION: VIRTUAL_HOST_PENDING_DNS_DELEGATION\n\nVirtual host is pending DNS delegation\n- VIRTUAL_HOST_PENDING_A_RECORD: VIRTUAL_HOST_PENDING_A_RECORD\n\nVirtual host is waiting for one or more A records to be created\n- VIRTUAL_HOST_DNS_A_RECORD_ADDED: VIRTUAL_HOST_DNS_A_RECORD_ADDED\n\nDNS A record has been added for this Virtual host\n- VIRTUAL_HOST_INTERNET_NLB_PENDING_CREATION: VIRTUAL_HOST_INTERNET_NLB_PENDING_CREATION\n\nInternet facing NLB, is being created on the site/sites belonging to the virtual site\n- VIRTUAL_HOST_INTERNET_NLB_CREATION_FAILED: VIRTUAL_HOST_INTERNET_NLB_CREATION_FAILED\n\nInternet NLB creation failed on the site/sites. InternetNLBVIPStatus will have more information.",
        "title": "VirtualHostState",
        "enum": [
          "VIRTUAL_HOST_READY",
          "VIRTUAL_HOST_PENDING_VERIFICATION",
          "VIRTUAL_HOST_VERIFICATION_FAILED",
          "VIRTUAL_HOST_PENDING_DNS_DELEGATION",
          "VIRTUAL_HOST_PENDING_A_RECORD",
          "VIRTUAL_HOST_DNS_A_RECORD_ADDED",
          "VIRTUAL_HOST_INTERNET_NLB_PENDING_CREATION",
          "VIRTUAL_HOST_INTERNET_NLB_CREATION_FAILED"
        ],
        "default": "VIRTUAL_HOST_READY",
        "x-displayname": "Virtual Host State.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.VirtualHostState",
        "x-f5xc-description-short": "State of the virtual host - VIRTUAL_HOST_READY: VIRTUAL_HOST_READY Virtual host is ready to install - VIRTUAL_HOST_PENDING_VERIFICATION...",
        "x-f5xc-description-medium": "State of the virtual host - VIRTUAL_HOST_READY: VIRTUAL_HOST_READY Virtual host is ready to install - VIRTUAL_HOST_PENDING_VERIFICATION: VIRTUAL_HOST_PENDING_VERIFICATION Virtual host is verification pending for some or all of its domains - VIRTUAL_HOST_VERIFICATION_FAILED...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVirtualHostState",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"VIRTUAL_HOST_READY\"",
          "example_yaml": "VIRTUAL_HOST_READY\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_host_dns_infoDnsInfo": {
        "type": "object",
        "description": "A message that contains DNS information for a given IP address.",
        "title": "DNS information",
        "x-displayname": "DNS Information.",
        "x-ves-proto-message": "ves.io.schema.virtual_host_dns_info.DnsInfo",
        "properties": {
          "ip_address": {
            "type": "string",
            "description": "IP address associated with virtual host.",
            "title": "IP address",
            "x-displayname": "IP Address.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.ip": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.ip": "true"
            },
            "x-f5xc-example": "192.0.2.1",
            "x-f5xc-description-short": "IP address associated with virtual host.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 1024,
              "minLength": 7,
              "pattern": "^((25[0-5]|(2[0-4]|1\\d|[1-9]|)\\d)\\.?\\b){4}$",
              "format": "ip",
              "formatDescription": "IPv4 dotted-decimal notation (e.g., 192.168.1.1)",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Message that contains DNS information for a given IP address.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_host_dns_infoDnsInfo",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of protocol_inspection",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Protocol inspection for compliance checks and signature-based detection",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "spec.enable_disable_compliance_checks",
            "spec.enable_disable_signatures"
          ],
          "mutually_exclusive_groups": [],
          "example_yaml": "apiVersion: v1\nkind: protocol_inspection\nmetadata:\n  name: example-inspection\n  namespace: default\nspec:\n  enable_disable_compliance_checks:\n    disable_compliance_checks: {}\n  enable_disable_signatures:\n    enable_signature: {}\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"example-inspection\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"enable_disable_compliance_checks\": {\n      \"disable_compliance_checks\": {}\n    },\n    \"enable_disable_signatures\": {\n      \"enable_signature\": {}\n    }\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionCreateSpecType": {
        "type": "object",
        "description": "Create Protocol Inspection Specification in a given namespace. If one already exists it will give an error.",
        "title": "Create Protocol Inspection",
        "x-displayname": "Create Protocol Inspection.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.CreateSpecType",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaprotocol_inspectionAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "ALLOW",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ALLOW",
                "BLOCK"
              ],
              "default": "ALLOW",
              "description": "Default action for inspected protocol violations"
            }
          },
          "enable_disable_compliance_checks": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionEnableDisableComplianceChecks"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable disable compliance checks.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_disable_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionEnableDisableSignatures"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable disable signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Create Protocol Inspection Specification in a given namespace. If one already exists it will give an error.",
        "x-f5xc-description-medium": "Create Protocol Inspection Specification in a given namespace. If one already exists it will give an error.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "enable_disable_signatures": "enable_signature",
          "enable_disable_compliance_checks": "disable_compliance_checks"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a protocol_inspection",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionEnableDisableComplianceChecks": {
        "type": "object",
        "description": "Enable Disable Compliance Checks Choice.",
        "title": "Enable Disable Compliance Checks",
        "x-displayname": "Enable/Disable Compliance Checks.",
        "x-ves-oneof-field-compliance_check_choice": "[\"disable_compliance_checks\",\"enable_compliance_checks\"]",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.EnableDisableComplianceChecks",
        "properties": {
          "disable_compliance_checks": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable compliance checks.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_compliance_checks"
            ]
          },
          "enable_compliance_checks": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable compliance checks.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_compliance_checks"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "enable_compliance_checks",
                "gated_by": {
                  "choice": "compliance_check_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-required": true,
        "x-f5xc-description-short": "Enable Disable Compliance Checks Choice.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionEnableDisableComplianceChecks",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionEnableDisableSignatures": {
        "type": "object",
        "description": "Enable Disable Signature Choice.",
        "title": "Enable Disable Signatures",
        "x-displayname": "Enable/Disable Signatures Choice.",
        "x-ves-oneof-field-signature_choice": "[\"disable_signature\",\"enable_signature\"]",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.EnableDisableSignatures",
        "properties": {
          "disable_signature": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable signature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_signature"
            ]
          },
          "enable_signature": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable signature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_signature"
            ]
          }
        },
        "x-required": true,
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionEnableDisableSignatures",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read protocol_inspection",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/protocol_inspectionStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionGetSpecType": {
        "type": "object",
        "description": "GET Protocol Inspection details.",
        "title": "Get Protocol Inspection",
        "x-displayname": "GET Protocol Inspection.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.GetSpecType",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaprotocol_inspectionAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "ALLOW",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ALLOW",
                "BLOCK"
              ],
              "default": "ALLOW",
              "description": "Default action for inspected protocol violations"
            }
          },
          "enable_disable_compliance_checks": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionEnableDisableComplianceChecks"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable disable compliance checks.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_disable_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionEnableDisableSignatures"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable disable signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "enable_disable_signatures": "enable_signature",
          "enable_disable_compliance_checks": "disable_compliance_checks"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of protocol_inspection",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/protocol_inspectionListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionListResponseItem": {
        "type": "object",
        "description": "By default a summary of protocol_inspection is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of protocol_inspection",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this protocol_inspection.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this protocol_inspection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this protocol_inspection.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this protocol_inspection.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates protocol_inspection is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates protocol_inspection is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this protocol_inspection.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this protocol_inspection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this protocol_inspection.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/protocol_inspectionStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this protocol_inspection.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this protocol_inspection.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of protocol_inspection is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of protocol_inspection is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionProtocolInspectionDeploymentStatus": {
        "type": "string",
        "description": "Deployment Status of Protocol Inspection\n\nProtocol Inspection is successfully deployed and active\nDeployment of Protocol Inspection is pending\nProtocol Inspection has been disabled.\nProtocol Inspection deployment encountered an error.",
        "title": "PROTOCOL INSPECTION Deployment Status",
        "enum": [
          "PROTOCOL_INSPECTION_CONFIG_ACTIVE",
          "PROTOCOL_INSPECTION_CONFIG_PENDING",
          "PROTOCOL_INSPECTION_CONFIG_DISABLED",
          "PROTOCOL_INSPECTION_CONFIG_FAILED"
        ],
        "default": "PROTOCOL_INSPECTION_CONFIG_ACTIVE",
        "x-displayname": "Protocol Inspection Deployment Status.",
        "x-ves-proto-enum": "ves.io.schema.protocol_inspection.ProtocolInspectionDeploymentStatus",
        "x-f5xc-description-short": "Deployment Status of Protocol Inspection Protocol Inspection is successfully deployed and active Deployment of Protocol Inspection is pending...",
        "x-f5xc-description-medium": "Deployment Status of Protocol Inspection Protocol Inspection is successfully deployed and active Deployment of Protocol Inspection is pending Protocol Inspection has been disabled. Protocol Inspection deployment encountered an error.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionProtocolInspectionDeploymentStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"PROTOCOL_INSPECTION_CONFIG_ACTIVE\"",
          "example_yaml": "PROTOCOL_INSPECTION_CONFIG_ACTIVE\n..."
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionProtocolInspectionStatus": {
        "type": "object",
        "description": "Status Protocol Inspection.",
        "title": "Protocol Inspection Status",
        "x-displayname": "Protocol Inspection Status.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.ProtocolInspectionStatus",
        "properties": {
          "deployment_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionProtocolInspectionDeploymentStatus"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionProtocolInspectionStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a protocol_inspection",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Protocol inspection for compliance checks and signature-based detection",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionReplaceSpecType": {
        "type": "object",
        "description": "Replace Protocol Inspection specification in a given namespace.",
        "title": "Replace Protocol Inspection",
        "x-displayname": "Replace Protocol Inspection.",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.ReplaceSpecType",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaprotocol_inspectionAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "ALLOW",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ALLOW",
                "BLOCK"
              ],
              "default": "ALLOW",
              "description": "Default action for inspected protocol violations"
            }
          },
          "enable_disable_compliance_checks": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionEnableDisableComplianceChecks"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable disable compliance checks.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_disable_signatures": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionEnableDisableSignatures"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable disable signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Replace Protocol Inspection specification in a given namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "enable_disable_signatures": "enable_signature",
          "enable_disable_compliance_checks": "disable_compliance_checks"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "protocol_inspectionStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Status of PROTOCOL INSPECTION",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.protocol_inspection.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions reported by various component of the system.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions reported by various component of the system.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Reference to object for current status.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "verification_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/protocol_inspectionProtocolInspectionStatus"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for protocol_inspectionStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaprotocol_inspectionAction": {
        "type": "string",
        "description": "Action after inspection\n\n- ALLOW: Allow\n\nAllow traffic\n- DENY: Deny\n\nThrow RST error for TCP and ICMP error for UDP\n- DROP: DROP\n\nSilently drop traffic.",
        "title": "Action",
        "enum": [
          "ALLOW",
          "DENY",
          "DROP"
        ],
        "default": "ALLOW",
        "x-displayname": "Action",
        "x-ves-proto-enum": "ves.io.schema.protocol_inspection.Action",
        "x-f5xc-description-short": "Action after inspection - ALLOW: Allow Allow traffic - DENY: Deny Throw RST error for TCP and ICMP error for UDP - DROP: DROP Silently drop traffic.",
        "x-f5xc-description-medium": "Action after inspection - ALLOW: Allow Allow traffic - DENY: Deny Throw RST error for TCP and ICMP error for UDP - DROP: DROP Silently drop traffic.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaprotocol_inspectionAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"ALLOW\"",
          "example_yaml": "ALLOW\n..."
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Protocol inspection is platform-level"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "tcp_loadbalancerCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of tcp_loadbalancer",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewstcp_loadbalancerCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "TCP load balancer for non-HTTP protocols",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "spec.listen_port",
            "spec.origin_pools_weights"
          ],
          "mutually_exclusive_groups": [
            {
              "name": "port_choice",
              "fields": [
                "spec.listen_port",
                "spec.port_ranges"
              ],
              "reason": "Specify either a single port or port ranges"
            },
            {
              "name": "advertising",
              "fields": [
                "spec.do_not_advertise",
                "spec.advertise_on_public_default_vip",
                "spec.advertise_on_public",
                "spec.advertise_custom"
              ],
              "reason": "Choose exactly one advertising method"
            },
            {
              "name": "hash_policy",
              "fields": [
                "spec.hash_policy_choice_least_active",
                "spec.hash_policy_choice_random",
                "spec.hash_policy_choice_round_robin",
                "spec.hash_policy_choice_source_ip_stickiness"
              ],
              "reason": "Choose load balancing hash policy"
            },
            {
              "name": "protocol",
              "fields": [
                "spec.tcp",
                "spec.tls_tcp",
                "spec.tls_tcp_auto_cert"
              ],
              "reason": "Choose TCP or TLS protocol"
            },
            {
              "name": "sni",
              "fields": [
                "spec.no_sni",
                "spec.sni"
              ],
              "reason": "SNI matching or none"
            },
            {
              "name": "service_policies",
              "fields": [
                "spec.service_policies_from_namespace",
                "spec.no_service_policies"
              ],
              "reason": "Service policies from namespace or none"
            }
          ],
          "example_yaml": "apiVersion: v1\nkind: tcp_loadbalancer\nmetadata:\n  name: example-tcp-lb\n  namespace: default\nspec:\n  listen_port: 80\n  do_not_advertise: {}\n  origin_pools_weights:\n    - pool:\n        namespace: default\n        name: backend-pool\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"example-tcp-lb\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"listen_port\": 80,\n    \"do_not_advertise\": {},\n    \"origin_pools_weights\": [{\"pool\": {\"namespace\": \"{{PREREQ_POOL_NS}}\", \"name\": \"{{PREREQ_POOL}}\"}, \"weight\": 1}]\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewstcp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a tcp_loadbalancer",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerGetDnsInfoResponse": {
        "type": "object",
        "description": "Response for GET-DNS-info API.",
        "title": "GetDnsInfoResponse",
        "x-displayname": "GET DNS Info Response.",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.GetDnsInfoResponse",
        "properties": {
          "dns_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_host_dns_infoGlobalSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerGetDnsInfoResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read tcp_loadbalancer",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewstcp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/tcp_loadbalancerStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of tcp_loadbalancer",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/tcp_loadbalancerListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerListResponseItem": {
        "type": "object",
        "description": "By default a summary of tcp_loadbalancer is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of tcp_loadbalancer",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this tcp_loadbalancer.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this tcp_loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this tcp_loadbalancer.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this tcp_loadbalancer.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates tcp_loadbalancer is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates tcp_loadbalancer is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewstcp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this tcp_loadbalancer.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this tcp_loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this tcp_loadbalancer.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/tcp_loadbalancerStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this tcp_loadbalancer.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this tcp_loadbalancer.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of tcp_loadbalancer is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of tcp_loadbalancer is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerProxyTypeTLSTCP": {
        "type": "object",
        "description": "Choice for selecting TLS over TCP proxy with bring your own certificates.",
        "title": "BYOC TLS over TCP Choice",
        "x-displayname": "BYOC TLS over TCP Choice.",
        "x-ves-oneof-field-tls_certificates_choice": "[\"tls_cert_params\",\"tls_parameters\"]",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ProxyTypeTLSTCP",
        "properties": {
          "tls_cert_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsDownstreamTLSCertsParams"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls cert params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_parameters"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsDownstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_cert_params"
            ]
          }
        },
        "x-f5xc-description-short": "Choice for selecting TLS over TCP proxy with bring your own certificates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerProxyTypeTLSTCP",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerProxyTypeTLSTCPAutoCerts": {
        "type": "object",
        "description": "Choice for selecting TLS over TCP proxy with automatic certificates.",
        "title": "TLS over TCP with Auto Certs Choice",
        "x-displayname": "TLS over TCP with Auto Certs Choice.",
        "x-ves-displayorder": "3,4",
        "x-ves-oneof-field-mtls_choice": "[\"no_mtls\",\"use_mtls\"]",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ProxyTypeTLSTCPAutoCerts",
        "properties": {
          "no_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_mtls"
            ]
          },
          "tls_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsTlsConfig"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_mtls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsDownstreamTlsValidationContext"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_mtls"
            ]
          }
        },
        "x-f5xc-description-short": "Choice for selecting TLS over TCP proxy with automatic certificates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerProxyTypeTLSTCPAutoCerts",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a tcp_loadbalancer",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewstcp_loadbalancerReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "TCP load balancer for non-HTTP protocols",
          "required_fields": [],
          "mutually_exclusive_groups": [
            {
              "name": "port_choice",
              "fields": [
                "spec.listen_port",
                "spec.port_ranges"
              ],
              "reason": "Specify either a single port or port ranges"
            },
            {
              "name": "advertising",
              "fields": [
                "spec.do_not_advertise",
                "spec.advertise_on_public_default_vip",
                "spec.advertise_on_public",
                "spec.advertise_custom"
              ],
              "reason": "Choose exactly one advertising method"
            },
            {
              "name": "hash_policy",
              "fields": [
                "spec.hash_policy_choice_least_active",
                "spec.hash_policy_choice_random",
                "spec.hash_policy_choice_round_robin",
                "spec.hash_policy_choice_source_ip_stickiness"
              ],
              "reason": "Choose load balancing hash policy"
            },
            {
              "name": "protocol",
              "fields": [
                "spec.tcp",
                "spec.tls_tcp",
                "spec.tls_tcp_auto_cert"
              ],
              "reason": "Choose TCP or TLS protocol"
            },
            {
              "name": "sni",
              "fields": [
                "spec.no_sni",
                "spec.sni"
              ],
              "reason": "SNI matching or none"
            },
            {
              "name": "service_policies",
              "fields": [
                "spec.service_policies_from_namespace",
                "spec.no_service_policies"
              ],
              "reason": "Service policies from namespace or none"
            }
          ],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerServicePolicyList": {
        "type": "object",
        "description": "List of service policies.",
        "title": "service policy list",
        "x-displayname": "Service Policy List.",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ServicePolicyList",
        "properties": {
          "policies": {
            "type": "array",
            "description": "Service Policies is a sequential engine where policies (and rules within the policy) are evaluated one after the other. It's important to define the\ncorrect order (policies evaluated from top to bottom in the list) for service policies, to GET the intended result.\nFor each request, its characteristics are evaluated based on the match criteria in each service policy starting at the top. If there is a match in the\ncurrent policy, then the policy takes effect, and no more policies are evaluated. Otherwise, the next policy is evaluated.\nIf all policies are evaluated and none match, then the request will be denied by default.",
            "title": "policies",
            "minItems": 1,
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Policies",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Service Policies is a sequential engine where policies (and rules within the policy) are evaluated one after the other.",
            "x-f5xc-description-medium": "Service Policies is a sequential engine where policies (and rules within the policy) are evaluated one after the other. It's important to define the correct order (policies evaluated from top to bottom in the list) for service policies, to GET the intended result. For each request, its...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerServicePolicyList",
          "required_fields": [
            "policies"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"policies\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "policies:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "tcp_loadbalancerStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "StatusObject",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions represent the normalized status values for configuration object.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions represent the normalized status values for configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "TCP loadbalancer view object direct reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-description-short": "TCP loadbalancer view object direct reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_host_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostDNSVHostStatusType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for tcp_loadbalancerStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewstcp_loadbalancerCreateSpecType": {
        "type": "object",
        "description": "Shape of the TCP load balancer create specification.",
        "title": "CreateSpecType",
        "x-displayname": "Create TCP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-cluster_retract_choice": "[\"do_not_retract_cluster\",\"retract_cluster\"]",
        "x-ves-oneof-field-hash_policy_choice": "[\"hash_policy_choice_least_active\",\"hash_policy_choice_random\",\"hash_policy_choice_round_robin\",\"hash_policy_choice_source_ip_stickiness\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"tcp\",\"tls_tcp\",\"tls_tcp_auto_cert\"]",
        "x-ves-oneof-field-port_choice": "[\"listen_port\",\"port_ranges\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-oneof-field-sni_default_lb_choice": "[\"default_lb_with_sni\",\"no_sni\",\"sni\"]",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.CreateSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "default_lb_with_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default lb with sni.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_sni",
              "sni"
            ]
          },
          "dns_volterra_managed": {
            "type": "boolean",
            "description": "DNS records for domains will be managed automatically by F5 Distributed Cloud.\nThis requires the domain to be delegated to F5XC using the Delegated Domain feature.",
            "format": "boolean",
            "x-displayname": "Automatically Manage DNS Records.",
            "x-f5xc-description-short": "DNS records for domains will be managed automatically by F5 Distributed Cloud.",
            "x-f5xc-description-medium": "DNS records for domains will be managed automatically by F5 Distributed Cloud. This requires the domain to be delegated to F5XC using the Delegated Domain feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "do_not_retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "retract_cluster"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to this Load Balancer.\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if SNI is activated on the given TCP Load Balancer.\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to this Load Balancer.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to this Load Balancer. Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "hash_policy_choice_least_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice random.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_random",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin"
            ]
          },
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "4147200000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "4147200000"
            },
            "x-f5xc-description-short": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 4147200000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true
          },
          "listen_port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nListen Port for this load balancer.",
            "format": "int64",
            "x-displayname": "Listen Port.",
            "x-ves-example": "0",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "0",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] Listen Port for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "no_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "default_lb_with_sni",
              "sni"
            ]
          },
          "origin_pools_weights": {
            "type": "array",
            "description": "Origin pools and weights used for this load balancer.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin pools and weights used for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [listen_port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "80,443,8080-8191,9080.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "80,443,8080-8191,9080",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [listen_port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [listen_port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "listen_port"
            ]
          },
          "retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "do_not_retract_cluster"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_lb_with_sni",
              "no_sni"
            ]
          },
          "tcp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "tls_tcp",
              "tls_tcp_auto_cert"
            ]
          },
          "tls_tcp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerProxyTypeTLSTCP"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp",
              "tls_tcp_auto_cert"
            ]
          },
          "tls_tcp_auto_cert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerProxyTypeTLSTCPAutoCerts"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls tcp auto cert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp",
              "tls_tcp"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the TCP load balancer create specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewstcp_loadbalancerCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "port_choice": "listen_port",
          "advertising": "do_not_advertise",
          "hash_policy": "hash_policy_choice_round_robin",
          "protocol": "tcp",
          "sni": "no_sni",
          "service_policies": "service_policies_from_namespace",
          "advertise_choice": "do_not_advertise",
          "cluster_retract_choice": "retract_cluster",
          "hash_policy_choice": "hash_policy_choice_round_robin",
          "loadbalancer_type": "tcp",
          "service_policy_choice": "service_policies_from_namespace",
          "sni_default_lb_choice": "no_sni"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewstcp_loadbalancerGetSpecType": {
        "type": "object",
        "description": "Shape of the TCP load balancer GET specification.",
        "title": "GetSpecType",
        "x-displayname": "GET TCP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-cluster_retract_choice": "[\"do_not_retract_cluster\",\"retract_cluster\"]",
        "x-ves-oneof-field-hash_policy_choice": "[\"hash_policy_choice_least_active\",\"hash_policy_choice_random\",\"hash_policy_choice_round_robin\",\"hash_policy_choice_source_ip_stickiness\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"tcp\",\"tls_tcp\",\"tls_tcp_auto_cert\"]",
        "x-ves-oneof-field-port_choice": "[\"listen_port\",\"port_ranges\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-oneof-field-sni_default_lb_choice": "[\"default_lb_with_sni\",\"no_sni\",\"sni\"]",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.GetSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "auto_cert_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAutoCertInfoType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for auto cert info.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "cert_state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCertificationState"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_lb_with_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default lb with sni.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_sni",
              "sni"
            ]
          },
          "dns_info": {
            "type": "array",
            "description": "DNS information for this virtual host.",
            "items": {
              "$ref": "#/components/schemas/virtual_host_dns_infoDnsInfo"
            },
            "x-displayname": "DNS Information.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dns_volterra_managed": {
            "type": "boolean",
            "description": "DNS records for domains will be managed automatically by F5 Distributed Cloud.\nThis requires the domain to be delegated to F5XC using the Delegated Domain feature.",
            "format": "boolean",
            "x-displayname": "Automatically Manage DNS Records.",
            "x-f5xc-description-short": "DNS records for domains will be managed automatically by F5 Distributed Cloud.",
            "x-f5xc-description-medium": "DNS records for domains will be managed automatically by F5 Distributed Cloud. This requires the domain to be delegated to F5XC using the Delegated Domain feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "do_not_retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "retract_cluster"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to this Load Balancer.\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if SNI is activated on the given TCP Load Balancer.\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to this Load Balancer.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to this Load Balancer. Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "hash_policy_choice_least_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice random.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_random",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin"
            ]
          },
          "host_name": {
            "type": "string",
            "description": "Internally generated host name to be used for the virtual host.",
            "x-displayname": "Host Name",
            "x-ves-example": "VES-I/o-00000000-0000-4000-8000-9694d5ee0763.ac.vh.ves.I/O.",
            "x-f5xc-example": "ves-io-00000000-0000-4000-8000-9694d5ee0763.ac.vh.F5 XC",
            "x-f5xc-description-short": "Internally generated host name to be used for the virtual host.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "4147200000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "4147200000"
            },
            "x-f5xc-description-short": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 4147200000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true
          },
          "internet_vip_info": {
            "type": "array",
            "description": "Internet VIP Info.",
            "items": {
              "$ref": "#/components/schemas/viewsInternetVIPInfo"
            },
            "x-displayname": "Internet VIP Info.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "listen_port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nListen Port for this load balancer.",
            "format": "int64",
            "x-displayname": "Listen Port.",
            "x-ves-example": "0",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "0",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] Listen Port for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "no_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "default_lb_with_sni",
              "sni"
            ]
          },
          "origin_pools_weights": {
            "type": "array",
            "description": "Origin pools and weights used for this load balancer.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin pools and weights used for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [listen_port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "80,443,8080-8191,9080.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "80,443,8080-8191,9080",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [listen_port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [listen_port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "listen_port"
            ]
          },
          "retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "do_not_retract_cluster"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_lb_with_sni",
              "no_sni"
            ]
          },
          "tcp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "tls_tcp",
              "tls_tcp_auto_cert"
            ]
          },
          "tls_tcp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerProxyTypeTLSTCP"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp",
              "tls_tcp_auto_cert"
            ]
          },
          "tls_tcp_auto_cert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerProxyTypeTLSTCPAutoCerts"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls tcp auto cert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp",
              "tls_tcp"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the TCP load balancer GET specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewstcp_loadbalancerGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "port_choice": "listen_port",
          "advertising": "do_not_advertise",
          "hash_policy": "hash_policy_choice_round_robin",
          "protocol": "tcp",
          "sni": "no_sni",
          "service_policies": "service_policies_from_namespace",
          "advertise_choice": "do_not_advertise",
          "cluster_retract_choice": "retract_cluster",
          "hash_policy_choice": "hash_policy_choice_round_robin",
          "loadbalancer_type": "tcp",
          "service_policy_choice": "service_policies_from_namespace",
          "sni_default_lb_choice": "no_sni"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewstcp_loadbalancerReplaceSpecType": {
        "type": "object",
        "description": "Shape of the TCP load balancer replace specification.",
        "title": "ReplaceSpecType",
        "x-displayname": "Replace TCP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-cluster_retract_choice": "[\"do_not_retract_cluster\",\"retract_cluster\"]",
        "x-ves-oneof-field-hash_policy_choice": "[\"hash_policy_choice_least_active\",\"hash_policy_choice_random\",\"hash_policy_choice_round_robin\",\"hash_policy_choice_source_ip_stickiness\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"tcp\",\"tls_tcp\",\"tls_tcp_auto_cert\"]",
        "x-ves-oneof-field-port_choice": "[\"listen_port\",\"port_ranges\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-oneof-field-sni_default_lb_choice": "[\"default_lb_with_sni\",\"no_sni\",\"sni\"]",
        "x-ves-proto-message": "ves.io.schema.views.tcp_loadbalancer.ReplaceSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "default_lb_with_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default lb with sni.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_sni",
              "sni"
            ]
          },
          "dns_volterra_managed": {
            "type": "boolean",
            "description": "DNS records for domains will be managed automatically by F5 Distributed Cloud.\nThis requires the domain to be delegated to F5XC using the Delegated Domain feature.",
            "format": "boolean",
            "x-displayname": "Automatically Manage DNS Records.",
            "x-f5xc-description-short": "DNS records for domains will be managed automatically by F5 Distributed Cloud.",
            "x-f5xc-description-medium": "DNS records for domains will be managed automatically by F5 Distributed Cloud. This requires the domain to be delegated to F5XC using the Delegated Domain feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "do_not_retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "retract_cluster"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to this Load Balancer.\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if SNI is activated on the given TCP Load Balancer.\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to this Load Balancer.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to this Load Balancer. Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "hash_policy_choice_least_active": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice random.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_random",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_least_active",
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin"
            ]
          },
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "4147200000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "4147200000"
            },
            "x-f5xc-description-short": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 4147200000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true
          },
          "listen_port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nListen Port for this load balancer.",
            "format": "int64",
            "x-displayname": "Listen Port.",
            "x-ves-example": "0",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "0",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] Listen Port for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "no_sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "default_lb_with_sni",
              "sni"
            ]
          },
          "origin_pools_weights": {
            "type": "array",
            "description": "Origin pools and weights used for this load balancer.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin pools and weights used for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [listen_port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "80,443,8080-8191,9080.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "80,443,8080-8191,9080",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [listen_port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [listen_port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "listen_port"
            ]
          },
          "retract_cluster": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "do_not_retract_cluster"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "sni": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_lb_with_sni",
              "no_sni"
            ]
          },
          "tcp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "tls_tcp",
              "tls_tcp_auto_cert"
            ]
          },
          "tls_tcp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerProxyTypeTLSTCP"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp",
              "tls_tcp_auto_cert"
            ]
          },
          "tls_tcp_auto_cert": {
            "allOf": [
              {
                "$ref": "#/components/schemas/tcp_loadbalancerProxyTypeTLSTCPAutoCerts"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls tcp auto cert.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp",
              "tls_tcp"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the TCP load balancer replace specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewstcp_loadbalancerReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "port_choice": "listen_port",
          "advertising": "do_not_advertise",
          "hash_policy": "hash_policy_choice_round_robin",
          "protocol": "tcp",
          "sni": "no_sni",
          "service_policies": "service_policies_from_namespace",
          "advertise_choice": "do_not_advertise",
          "cluster_retract_choice": "retract_cluster",
          "hash_policy_choice": "hash_policy_choice_round_robin",
          "loadbalancer_type": "tcp",
          "service_policy_choice": "service_policies_from_namespace",
          "sni_default_lb_choice": "no_sni"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "udp_loadbalancerCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of udp_loadbalancer",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsudp_loadbalancerCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerCreateRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsudp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a udp_loadbalancer",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerGetDnsInfoResponse": {
        "type": "object",
        "description": "Response for GET-DNS-info API.",
        "title": "GetDnsInfoResponse",
        "x-displayname": "GET DNS Info Response.",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.GetDnsInfoResponse",
        "properties": {
          "dns_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_host_dns_infoGlobalSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerGetDnsInfoResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read udp_loadbalancer",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/udp_loadbalancerCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/udp_loadbalancerReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsudp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/udp_loadbalancerStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of udp_loadbalancer",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/udp_loadbalancerListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerListResponseItem": {
        "type": "object",
        "description": "By default a summary of udp_loadbalancer is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of udp_loadbalancer",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this udp_loadbalancer.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this udp_loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this udp_loadbalancer.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this udp_loadbalancer.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates udp_loadbalancer is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates udp_loadbalancer is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsudp_loadbalancerGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this udp_loadbalancer.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this udp_loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this udp_loadbalancer.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/udp_loadbalancerStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this udp_loadbalancer.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this udp_loadbalancer.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of udp_loadbalancer is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of udp_loadbalancer is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a udp_loadbalancer",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsudp_loadbalancerReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerReplaceRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "udp_loadbalancerStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "StatusObject",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions represent the normalized status values for configuration object.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions represent the normalized status values for configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "UDP loadbalancer view object direct reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-description-short": "UDP loadbalancer view object direct reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_host_status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostDNSVHostStatusType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for udp_loadbalancerStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "viewsudp_loadbalancerCreateSpecType": {
        "type": "object",
        "description": "Shape of the UDP load balancer create specification.",
        "title": "CreateSpecType",
        "x-displayname": "Create UDP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-cluster_retract_choice": "[]",
        "x-ves-oneof-field-hash_policy_choice": "[\"hash_policy_choice_random\",\"hash_policy_choice_round_robin\",\"hash_policy_choice_source_ip_stickiness\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"udp\"]",
        "x-ves-oneof-field-port_choice": "[\"listen_port\",\"port_ranges\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.CreateSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "dns_volterra_managed": {
            "type": "boolean",
            "description": "DNS records for domains will be managed automatically by F5 Distributed Cloud.\nAs a prerequisite, the domain to be delegated to F5 Distributed Cloud using the Delegated Domain feature or a DNS CNAME record must be created in your DNS provider's portal.",
            "format": "boolean",
            "x-displayname": "Automatically Manage DNS Records.",
            "x-f5xc-description-short": "DNS records for domains will be managed automatically by F5 Distributed Cloud.",
            "x-f5xc-description-medium": "DNS records for domains will be managed automatically by F5 Distributed Cloud. As a prerequisite, the domain to be delegated to F5 Distributed Cloud using the Delegated Domain feature or a DNS CNAME record must be created in your DNS provider's portal.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of domains (host/authority header) that will be matched to this load balancer.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.hostname": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.hostname": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domains (host/authority header) that will be matched to this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "hash_policy_choice_random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice random.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin"
            ]
          },
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-description-short": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 30000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "listen_port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nListen Port for this load balancer.",
            "format": "int64",
            "x-displayname": "Listen Port.",
            "x-ves-example": "53",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "53",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] Listen Port for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "origin_pools_weights": {
            "type": "array",
            "description": "Origin pools with weights and priorities used for this load balancer.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin pools with weights and priorities used for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [listen_port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "53,123,5000-5020.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "53,123,5000-5020",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [listen_port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [listen_port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "listen_port"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "udp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of the UDP load balancer create specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsudp_loadbalancerCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "viewsudp_loadbalancerGetSpecType": {
        "type": "object",
        "description": "Shape of the UDP load balancer GET specification.",
        "title": "GetSpecType",
        "x-displayname": "GET UDP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-cluster_retract_choice": "[]",
        "x-ves-oneof-field-hash_policy_choice": "[\"hash_policy_choice_random\",\"hash_policy_choice_round_robin\",\"hash_policy_choice_source_ip_stickiness\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"udp\"]",
        "x-ves-oneof-field-port_choice": "[\"listen_port\",\"port_ranges\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.GetSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "dns_info": {
            "type": "array",
            "description": "DNS information for this virtual host.",
            "items": {
              "$ref": "#/components/schemas/virtual_host_dns_infoDnsInfo"
            },
            "x-displayname": "DNS Information.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dns_volterra_managed": {
            "type": "boolean",
            "description": "DNS records for domains will be managed automatically by F5 Distributed Cloud.\nAs a prerequisite, the domain to be delegated to F5 Distributed Cloud using the Delegated Domain feature or a DNS CNAME record must be created in your DNS provider's portal.",
            "format": "boolean",
            "x-displayname": "Automatically Manage DNS Records.",
            "x-f5xc-description-short": "DNS records for domains will be managed automatically by F5 Distributed Cloud.",
            "x-f5xc-description-medium": "DNS records for domains will be managed automatically by F5 Distributed Cloud. As a prerequisite, the domain to be delegated to F5 Distributed Cloud using the Delegated Domain feature or a DNS CNAME record must be created in your DNS provider's portal.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of domains (host/authority header) that will be matched to this load balancer.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.hostname": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.hostname": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domains (host/authority header) that will be matched to this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "hash_policy_choice_random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice random.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin"
            ]
          },
          "host_name": {
            "type": "string",
            "description": "Internally generated host name to be used for the virtual host.",
            "x-displayname": "Host Name",
            "x-ves-example": "VES-I/o-00000000-0000-4000-8000-9694d5ee0763.ac.vh.ves.I/O.",
            "x-f5xc-example": "ves-io-00000000-0000-4000-8000-9694d5ee0763.ac.vh.F5 XC",
            "x-f5xc-description-short": "Internally generated host name to be used for the virtual host.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-description-short": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 30000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "internet_vip_info": {
            "type": "array",
            "description": "Internet VIP Info.",
            "items": {
              "$ref": "#/components/schemas/viewsInternetVIPInfo"
            },
            "x-displayname": "Internet VIP Info.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "listen_port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nListen Port for this load balancer.",
            "format": "int64",
            "x-displayname": "Listen Port.",
            "x-ves-example": "53",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "53",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] Listen Port for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "origin_pools_weights": {
            "type": "array",
            "description": "Origin pools with weights and priorities used for this load balancer.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin pools with weights and priorities used for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [listen_port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "53,123,5000-5020.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "53,123,5000-5020",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [listen_port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [listen_port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "listen_port"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "udp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of the UDP load balancer GET specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsudp_loadbalancerGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "viewsudp_loadbalancerReplaceSpecType": {
        "type": "object",
        "description": "Shape of the UDP load balancer replace specification.",
        "title": "ReplaceSpecType",
        "x-displayname": "Replace UDP Load Balancer.",
        "x-ves-oneof-field-advertise_choice": "[\"advertise_custom\",\"advertise_on_public\",\"advertise_on_public_default_vip\",\"do_not_advertise\"]",
        "x-ves-oneof-field-cluster_retract_choice": "[]",
        "x-ves-oneof-field-hash_policy_choice": "[\"hash_policy_choice_random\",\"hash_policy_choice_round_robin\",\"hash_policy_choice_source_ip_stickiness\"]",
        "x-ves-oneof-field-loadbalancer_type": "[\"udp\"]",
        "x-ves-oneof-field-port_choice": "[\"listen_port\",\"port_ranges\"]",
        "x-ves-oneof-field-service_policy_choice": "[\"active_service_policies\",\"no_service_policies\",\"service_policies_from_namespace\"]",
        "x-ves-proto-message": "ves.io.schema.views.udp_loadbalancer.ReplaceSpecType",
        "properties": {
          "active_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/common_wafServicePolicyList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "advertise_custom": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseCustom__ves_io_schema_views_bigip_http_proxy"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise custom.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_on_public",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertisePublic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advertise on public.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public_default_vip",
              "do_not_advertise"
            ]
          },
          "advertise_on_public_default_vip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "do_not_advertise"
            ]
          },
          "dns_volterra_managed": {
            "type": "boolean",
            "description": "DNS records for domains will be managed automatically by F5 Distributed Cloud.\nAs a prerequisite, the domain to be delegated to F5 Distributed Cloud using the Delegated Domain feature or a DNS CNAME record must be created in your DNS provider's portal.",
            "format": "boolean",
            "x-displayname": "Automatically Manage DNS Records.",
            "x-f5xc-description-short": "DNS records for domains will be managed automatically by F5 Distributed Cloud.",
            "x-f5xc-description-medium": "DNS records for domains will be managed automatically by F5 Distributed Cloud. As a prerequisite, the domain to be delegated to F5 Distributed Cloud using the Delegated Domain feature or a DNS CNAME record must be created in your DNS provider's portal.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "advertise_custom",
              "advertise_on_public",
              "advertise_on_public_default_vip"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of domains (host/authority header) that will be matched to this load balancer.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.hostname": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.hostname": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domains (host/authority header) that will be matched to this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "hash_policy_choice_random": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice random.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_round_robin",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_round_robin": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for hash policy choice round robin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_source_ip_stickiness"
            ]
          },
          "hash_policy_choice_source_ip_stickiness": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "hash_policy_choice_random",
              "hash_policy_choice_round_robin"
            ]
          },
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "30000"
            },
            "x-f5xc-description-short": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a session can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 30000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "listen_port": {
            "type": "integer",
            "description": "Exclusive with [port_ranges]\nListen Port for this load balancer.",
            "format": "int64",
            "x-displayname": "Listen Port.",
            "x-ves-example": "53",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "53",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [port_ranges] Listen Port for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port_ranges"
            ]
          },
          "no_service_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no service policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "service_policies_from_namespace"
            ]
          },
          "origin_pools_weights": {
            "type": "array",
            "description": "Origin pools with weights and priorities used for this load balancer.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/viewsOriginPoolWithWeight"
            },
            "x-displayname": "Origin Pools.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Origin pools with weights and priorities used for this load balancer.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_ranges": {
            "type": "string",
            "description": "Exclusive with [listen_port]\nA string containing a comma separated list of port ranges.\nEach port range consists of a single port or two ports separated by \"-\".",
            "minLength": 1,
            "maxLength": 512,
            "x-displayname": "Port Ranges.",
            "x-ves-example": "53,123,5000-5020.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-example": "53,123,5000-5020",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "512",
              "ves.io.schema.rules.string.max_ports": "64",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.unique_port_range_list": "true"
            },
            "x-f5xc-description-short": "Exclusive with [listen_port] A string containing a comma separated list of port ranges.",
            "x-f5xc-description-medium": "Exclusive with [listen_port] A string containing a comma separated list of port ranges. Each port range consists of a single port or two ports separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 512,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "listen_port"
            ]
          },
          "service_policies_from_namespace": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_service_policies",
              "no_service_policies"
            ]
          },
          "udp": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of the UDP load balancer replace specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsudp_loadbalancerReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of enhanced_firewall_policy",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaenhanced_firewall_policyCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Enhanced L4 firewall policy with segment-based access control",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "mutually_exclusive_groups": [],
          "example_yaml": "metadata:\n  name: example-efp\n  namespace: default\nspec: {}\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"example-efp\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {}\n}\n"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaenhanced_firewall_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a enhanced_firewall_policy",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyHits": {
        "type": "object",
        "description": "EnhancedFirewallPolicyHits contains the timeseries data of Enhanced Firewall Policy hits.",
        "title": "Enhanced Firewall Policy Hits",
        "x-displayname": "Enhanced Firewall Policy Hits.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyHits",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyHitsId"
              }
            ],
            "x-f5xc-example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metric": {
            "type": "array",
            "description": "X-unit: \"count\"\nList of metric values.",
            "title": "Metric",
            "items": {
              "$ref": "#/components/schemas/schemaMetricValue"
            },
            "x-displayname": "Metric",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "EnhancedFirewallPolicyHits contains the timeseries data of Enhanced Firewall Policy hits.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyHits",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyHitsId": {
        "type": "object",
        "description": "EnhancedFirewallPolicyHitsId uniquely identifies an entry in the response to Enhanced Firewall Policy hits request.\nEnhanced Firewall Policy hits counter is aggregated based on the labels specified in the group_by field in the request.\nTherefore, only the fields that corresponds to the MetricLabel in the group_by field will have non-empty\nvalue in the response.",
        "title": "Enhanced Firewall Policy Hits ID",
        "x-displayname": "Enhanced Firewall Policy Hits ID.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyHitsId",
        "properties": {
          "action": {
            "type": "string",
            "description": "Action associated with the policy rule.",
            "title": "Action",
            "x-displayname": "Action",
            "x-ves-example": "Allow",
            "x-f5xc-example": "allow",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the policy rule was hit.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the policy rule was hit.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "policy": {
            "type": "string",
            "description": "Policy name.",
            "title": "Policy",
            "x-displayname": "Policy",
            "x-ves-example": "Policy1",
            "x-f5xc-example": "policy1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "policy_rule": {
            "type": "string",
            "description": "Policy Rule name.",
            "title": "Policy Rule",
            "x-displayname": "Policy Rule.",
            "x-ves-example": "Rule1",
            "x-f5xc-example": "rule1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site": {
            "type": "string",
            "description": "Site name",
            "title": "Site",
            "x-displayname": "Site",
            "x-ves-example": "Ce1",
            "x-f5xc-example": "ce1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "EnhancedFirewallPolicyHitsId uniquely identifies an entry in the response to Enhanced Firewall Policy hits request.",
        "x-f5xc-description-medium": "EnhancedFirewallPolicyHitsId uniquely identifies an entry in the response to Enhanced Firewall Policy hits request. Enhanced Firewall Policy hits counter is aggregated based on the labels specified in the group_by field in the request. Therefore, only the fields that corresponds to the...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyHitsId",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyHitsRequest": {
        "type": "object",
        "description": "Request to GET the Enhanced Firewall Policy hits counter.",
        "title": "Enhanced Firewall Policy Hits Request",
        "x-displayname": "Enhanced Firewall Policy Hits Request.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyHitsRequest",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "End time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "End time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "End time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "group_by": {
            "type": "array",
            "description": "Aggregate data by one of more labels specified in group_by.\n\nOptional: If not specified, then the rule hits are aggregated/grouped by POLICY.",
            "title": "Group by",
            "items": {
              "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyMetricLabel"
            },
            "x-displayname": "Group By",
            "x-f5xc-description-short": "Aggregate data by one of more labels specified in group_by. Optional: If not specified, then the rule hits are aggregated/grouped by POLICY.",
            "x-f5xc-description-medium": "Aggregate data by one of more labels specified in group_by. Optional: If not specified, then the rule hits are aggregated/grouped by POLICY.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_filter": {
            "type": "array",
            "description": "List of label filter expressions of the form \"label\" Op \"value\".\nResponse will only contain data that matches all the conditions specified in the label_filter.\n\nOptional: If not specified, then the metrics will be filtered only based on the namespace in the request.",
            "title": "Label Filter",
            "items": {
              "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyMetricLabelFilter"
            },
            "x-displayname": "Label Filter.",
            "x-f5xc-description-short": "List of label filter expressions of the form \"label\" Op \"value\".",
            "x-f5xc-description-medium": "List of label filter expressions of the form \"label\" Op \"value\". Response will only contain data that matches all the conditions specified in the label_filter. Optional: If not specified, then the metrics will be filtered only based on the namespace in the request.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace is used to scope Enhanced Firewall Policy hits for the given namespace.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace is used to scope Enhanced Firewall Policy hits for the given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "start_time": {
            "type": "string",
            "description": "Start time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "Start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Start time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "Start time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.\nThe timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nOptional: If not specified, then step size is evaluated to <end_time - start_time>",
            "title": "Step",
            "x-displayname": "Step",
            "x-ves-example": "5m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-example": "5m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-description-short": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.",
            "x-f5xc-description-medium": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response. The timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET the Enhanced Firewall Policy hits counter.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyHitsRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyHitsResponse": {
        "type": "object",
        "description": "Number of Enhanced Firewall Policy rule hits for each unique combination of group_by labels in the request.",
        "title": "Enhanced Firewall Policy Hits Response",
        "x-displayname": "Enhanced Firewall Policy Hits Response.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyHitsResponse",
        "properties": {
          "data": {
            "type": "array",
            "description": "List of Enhanced Firewall Policy hits data.",
            "title": "Enhanced Firewall Policy Hits",
            "items": {
              "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyHits"
            },
            "x-displayname": "Enhanced Firewall Policy Hits.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of Enhanced Firewall Policy hits data.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "title": "step",
            "x-displayname": "Step",
            "x-ves-example": "30m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "30m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.",
            "x-f5xc-description-medium": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Number of Enhanced Firewall Policy rule hits for each unique combination of group_by labels in the request.",
        "x-f5xc-description-medium": "Number of Enhanced Firewall Policy rule hits for each unique combination of group_by labels in the request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyHitsResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyMetricLabel": {
        "type": "string",
        "description": "Enhanced Firewall Policy hits can be sliced and diced based on one or more labels listed below.",
        "title": "Enhanced Firewall Policy Metric Labels",
        "enum": [
          "NAMESPACE",
          "POLICY",
          "POLICY_RULE",
          "ACTION",
          "SITE"
        ],
        "default": "NAMESPACE",
        "x-displayname": "Enhanced Firewall Policy Metric Labels.",
        "x-ves-proto-enum": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyMetricLabel",
        "x-f5xc-description-short": "Enhanced Firewall Policy hits can be sliced and diced based on one or more labels listed below.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyMetricLabel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"NAMESPACE\"",
          "example_yaml": "NAMESPACE\n..."
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyMetricLabelFilter": {
        "type": "object",
        "description": "Label filter can be specified to filter metrics based on label match.",
        "title": "Enhanced Firewall Policy Metric Label Filter",
        "x-displayname": "Enhanced Firewall Policy Metric Label Filter.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyMetricLabelFilter",
        "properties": {
          "label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyMetricLabel"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "op": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMetricLabelOp"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Value to be compared with.",
            "title": "Value",
            "x-displayname": "Value",
            "x-ves-example": "Policy1",
            "x-f5xc-example": "policy1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Label filter can be specified to filter metrics based on label match.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyMetricLabelFilter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyRuleListType": {
        "type": "object",
        "description": "Custom Enhanced Firewall Policy Rules.",
        "title": "Custom Enhanced Firewall Policy Rules",
        "x-displayname": "Custom Enhanced Firewall Policy Rules.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyRuleListType",
        "properties": {
          "rules": {
            "type": "array",
            "description": "Ordered List of Enhanced Firewall Policy Rules.",
            "title": "List of Enhanced Firewall Policy Rules",
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyRuleType"
            },
            "x-displayname": "List of Enhanced Firewall Policy Rules.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Ordered List of Enhanced Firewall Policy Rules.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyRuleListType",
          "required_fields": [
            "rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"rules\": [\n    {}\n  ]\n}",
          "example_yaml": "rules:\n- {}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyEnhancedFirewallPolicyRuleType": {
        "type": "object",
        "description": "Enhanced Firewall Policy rules definition.",
        "title": "Enhanced Firewall Policy Rule",
        "x-displayname": "Enhanced Firewall Policy Rule.",
        "x-ves-oneof-field-action_choice": "[\"allow\",\"deny\",\"insert_service\"]",
        "x-ves-oneof-field-destination_choice": "[\"all_destinations\",\"all_sli_vips\",\"all_slo_vips\",\"destination_aws_vpc_ids\",\"destination_ip_prefix_set\",\"destination_label_selector\",\"destination_prefix_list\",\"inside_destinations\",\"outside_destinations\"]",
        "x-ves-oneof-field-source_choice": "[\"all_sources\",\"inside_sources\",\"outside_sources\",\"source_aws_vpc_ids\",\"source_ip_prefix_set\",\"source_label_selector\",\"source_prefix_list\"]",
        "x-ves-oneof-field-traffic_choice": "[\"all_tcp_traffic\",\"all_traffic\",\"all_udp_traffic\",\"applications\",\"protocol_port_range\"]",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.EnhancedFirewallPolicyRuleType",
        "properties": {
          "advanced_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/network_policy_ruleNetworkPolicyRuleAdvancedAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "all_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for all destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_sli_vips",
              "all_slo_vips",
              "destination_aws_vpc_ids",
              "destination_ip_prefix_set",
              "destination_label_selector",
              "destination_prefix_list",
              "inside_destinations",
              "outside_destinations"
            ]
          },
          "all_sli_vips": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_slo_vips",
              "destination_aws_vpc_ids",
              "destination_ip_prefix_set",
              "destination_label_selector",
              "destination_prefix_list",
              "inside_destinations",
              "outside_destinations"
            ]
          },
          "all_slo_vips": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_sli_vips",
              "destination_aws_vpc_ids",
              "destination_ip_prefix_set",
              "destination_label_selector",
              "destination_prefix_list",
              "inside_destinations",
              "outside_destinations"
            ]
          },
          "all_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for all sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "inside_sources",
              "outside_sources",
              "source_aws_vpc_ids",
              "source_ip_prefix_set",
              "source_label_selector",
              "source_prefix_list"
            ]
          },
          "all_tcp_traffic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for all tcp traffic.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_traffic",
              "all_udp_traffic",
              "applications",
              "protocol_port_range"
            ]
          },
          "all_traffic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for all traffic.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_tcp_traffic",
              "all_udp_traffic",
              "applications",
              "protocol_port_range"
            ]
          },
          "all_udp_traffic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for all udp traffic.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_tcp_traffic",
              "all_traffic",
              "applications",
              "protocol_port_range"
            ]
          },
          "allow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "deny",
              "insert_service"
            ]
          },
          "applications": {
            "allOf": [
              {
                "$ref": "#/components/schemas/network_policyApplicationsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for applications.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_tcp_traffic",
              "all_traffic",
              "all_udp_traffic",
              "protocol_port_range"
            ]
          },
          "deny": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow",
              "insert_service"
            ]
          },
          "destination_aws_vpc_ids": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaAwsVpcList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for destination aws vpc ids.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_sli_vips",
              "all_slo_vips",
              "destination_ip_prefix_set",
              "destination_label_selector",
              "destination_prefix_list",
              "inside_destinations",
              "outside_destinations"
            ]
          },
          "destination_ip_prefix_set": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaIpPrefixSetRefType__ves_io_schema_views_network_policy_view"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_sli_vips",
              "all_slo_vips",
              "destination_aws_vpc_ids",
              "destination_label_selector",
              "destination_prefix_list",
              "inside_destinations",
              "outside_destinations"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "ip_prefix_set",
                "field_path": "destination_ip_prefix_set",
                "gated_by": {
                  "choice": "destination_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "destination_label_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_sli_vips",
              "all_slo_vips",
              "destination_aws_vpc_ids",
              "destination_ip_prefix_set",
              "destination_prefix_list",
              "inside_destinations",
              "outside_destinations"
            ]
          },
          "destination_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsPrefixStringListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_sli_vips",
              "all_slo_vips",
              "destination_aws_vpc_ids",
              "destination_ip_prefix_set",
              "destination_label_selector",
              "inside_destinations",
              "outside_destinations"
            ]
          },
          "insert_service": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyServiceActionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for insert service.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow",
              "deny"
            ]
          },
          "inside_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inside destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_sli_vips",
              "all_slo_vips",
              "destination_aws_vpc_ids",
              "destination_ip_prefix_set",
              "destination_label_selector",
              "destination_prefix_list",
              "outside_destinations"
            ]
          },
          "inside_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inside sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_sources",
              "outside_sources",
              "source_aws_vpc_ids",
              "source_ip_prefix_set",
              "source_label_selector",
              "source_prefix_list"
            ]
          },
          "label_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "outside_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outside destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_destinations",
              "all_sli_vips",
              "all_slo_vips",
              "destination_aws_vpc_ids",
              "destination_ip_prefix_set",
              "destination_label_selector",
              "destination_prefix_list",
              "inside_destinations"
            ]
          },
          "outside_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outside sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_sources",
              "inside_sources",
              "source_aws_vpc_ids",
              "source_ip_prefix_set",
              "source_label_selector",
              "source_prefix_list"
            ]
          },
          "protocol_port_range": {
            "allOf": [
              {
                "$ref": "#/components/schemas/network_policyProtocolPortType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_tcp_traffic",
              "all_traffic",
              "all_udp_traffic",
              "applications"
            ]
          },
          "source_aws_vpc_ids": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaAwsVpcList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for source aws vpc ids.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "x-f5xc-conflicts-with": [
              "all_sources",
              "inside_sources",
              "outside_sources",
              "source_ip_prefix_set",
              "source_label_selector",
              "source_prefix_list"
            ]
          },
          "source_ip_prefix_set": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaIpPrefixSetRefType__ves_io_schema_views_network_policy_view"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_sources",
              "inside_sources",
              "outside_sources",
              "source_aws_vpc_ids",
              "source_label_selector",
              "source_prefix_list"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "ip_prefix_set",
                "field_path": "source_ip_prefix_set",
                "gated_by": {
                  "choice": "source_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "source_label_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_sources",
              "inside_sources",
              "outside_sources",
              "source_aws_vpc_ids",
              "source_ip_prefix_set",
              "source_prefix_list"
            ]
          },
          "source_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsPrefixStringListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "all_sources",
              "inside_sources",
              "outside_sources",
              "source_aws_vpc_ids",
              "source_ip_prefix_set",
              "source_label_selector"
            ]
          }
        },
        "x-f5xc-description-short": "Enhanced Firewall Policy rules definition.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyEnhancedFirewallPolicyRuleType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read enhanced_firewall_policy",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaenhanced_firewall_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/enhanced_firewall_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of enhanced_firewall_policy",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/enhanced_firewall_policyListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyListResponseItem": {
        "type": "object",
        "description": "By default a summary of enhanced_firewall_policy is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of enhanced_firewall_policy",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this enhanced_firewall_policy.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this enhanced_firewall_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this enhanced_firewall_policy.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this enhanced_firewall_policy.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates enhanced_firewall_policy is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates enhanced_firewall_policy is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaenhanced_firewall_policyGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this enhanced_firewall_policy.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this enhanced_firewall_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this enhanced_firewall_policy.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "x-f5xc-description-short": "The name of this enhanced_firewall_policy.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/enhanced_firewall_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this enhanced_firewall_policy.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this enhanced_firewall_policy.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of enhanced_firewall_policy is returned in 'List'.",
        "x-f5xc-description-medium": "By default a summary of enhanced_firewall_policy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a enhanced_firewall_policy",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaenhanced_firewall_policyReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Enhanced L4 firewall policy with segment-based access control",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyServiceActionType": {
        "type": "object",
        "description": "Action to forward traffic to external service.",
        "title": "Policy Action to Forward Traffic to External Service",
        "x-displayname": "Policy Action to Forward Traffic to External Service.",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.ServiceActionType",
        "properties": {
          "nfv_service": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for nfv service.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "nfv_service",
                "field_path": "nfv_service",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          }
        },
        "x-f5xc-description-short": "Action to forward traffic to external service.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyServiceActionType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "enhanced_firewall_policyStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "StatusObject",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions represent the normalized status values for configuration object.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions represent the normalized status values for configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Enhanced Firewall Policy object direct reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-description-short": "Enhanced Firewall Policy object direct reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for enhanced_firewall_policyStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "network_policyApplicationEnumType": {
        "type": "string",
        "description": "Application protocols like HTTP, SNMP.",
        "title": "Applications",
        "enum": [
          "APPLICATION_HTTP",
          "APPLICATION_HTTPS",
          "APPLICATION_SNMP",
          "APPLICATION_DNS"
        ],
        "default": "APPLICATION_HTTP",
        "x-displayname": "Applications.",
        "x-ves-proto-enum": "ves.io.schema.network_policy.ApplicationEnumType",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for network_policyApplicationEnumType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"APPLICATION_HTTP\"",
          "example_yaml": "APPLICATION_HTTP\n..."
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "network_policyApplicationsType": {
        "type": "object",
        "description": "Application protocols like HTTP, SNMP.",
        "title": "Applications",
        "x-displayname": "Applications.",
        "x-ves-displayorder": "1",
        "x-ves-proto-message": "ves.io.schema.network_policy.ApplicationsType",
        "properties": {
          "applications": {
            "type": "array",
            "description": "Application protocols like HTTP, SNMP.",
            "title": "Applications",
            "items": {
              "$ref": "#/components/schemas/network_policyApplicationEnumType"
            },
            "x-displayname": "Application Protocols.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for network_policyApplicationsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "network_policyProtocolPortType": {
        "type": "object",
        "description": "Protocol and Port ranges.",
        "title": "Protocol and Port",
        "x-displayname": "Protocol and Port.",
        "x-ves-displayorder": "1,2",
        "x-ves-proto-message": "ves.io.schema.network_policy.ProtocolPortType",
        "properties": {
          "port_ranges": {
            "type": "array",
            "description": "List of port ranges. Each range is a single port or a pair of start and end ports e.g. 8080-8192.",
            "title": "ports",
            "maxItems": 128,
            "items": {
              "type": "string"
            },
            "x-displayname": "List of Port Ranges.",
            "x-ves-example": "100-200",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.port_range": "true",
              "ves.io.schema.rules.repeated.max_items": "128"
            },
            "x-f5xc-example": "100-200",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.port_range": "true",
              "ves.io.schema.rules.repeated.max_items": "128"
            },
            "x-f5xc-description-short": "List of port ranges. Each range is a single port or a pair of start and end ports e.g. 8080-8192.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "protocol": {
            "type": "string",
            "description": "Protocol in IP packet to be used as match criteria\nValues are TCP, UDP, and icmp.",
            "title": "protocol",
            "x-displayname": "Protocol",
            "x-ves-example": "ALL",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"ALL\\\",\\\"TCP\\\",\\\"UDP\\\",\\\"ICMP\\\"]"
            },
            "x-f5xc-example": "ALL",
            "x-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"ALL\\\",\\\"TCP\\\",\\\"UDP\\\",\\\"ICMP\\\"]"
            },
            "x-f5xc-description-short": "Protocol in IP packet to be used as match criteria Values are TCP, UDP, and icmp.",
            "maxLength": 1024,
            "enum": [
              "ALL",
              "TCP",
              "UDP",
              "ICMP"
            ],
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for network_policyProtocolPortType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "network_policy_ruleLogAction": {
        "type": "string",
        "description": "Choice to choose logging or no logging\nThis works together with option selected via NetworkPolicyRuleAction or any other action specified\nx-example: (No Selection in NetworkPolicyRuleAction + AdvancedAction as LOG) = LOG Only, (ALLOW/DENY in NetworkPolicyRuleAction + AdvancedAction as LOG) = Log and Allow/Deny, (ALLOW/DENY in NetworkPolicyRuleAction + NOLOG in AdvancedAction) = Allow/Deny with no log\n\nDon't sample the traffic hitting the rule\nSample the traffic hitting the rule.",
        "title": "Log Action",
        "enum": [
          "NOLOG",
          "LOG"
        ],
        "default": "NOLOG",
        "x-displayname": "Log Action.",
        "x-ves-proto-enum": "ves.io.schema.network_policy_rule.LogAction",
        "x-f5xc-description-short": "Choice to choose logging or no logging This works together with option selected via NetworkPolicyRuleAction or any other action specified x-.",
        "x-f5xc-description-medium": "Choice to choose logging or no logging This works together with option selected via NetworkPolicyRuleAction or any other action specified x-.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for network_policy_ruleLogAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"NOLOG\"",
          "example_yaml": "NOLOG\n..."
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Network policy rules are platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "network_policy_ruleNetworkPolicyRuleAdvancedAction": {
        "type": "object",
        "description": "Network Policy Rule Advanced Action provides additional OPTIONS along with RuleAction and PBRRuleAction.",
        "title": "Network Policy Rule Advanced Action",
        "x-displayname": "Network Policy Rule Advanced Action.",
        "x-ves-proto-message": "ves.io.schema.network_policy_rule.NetworkPolicyRuleAdvancedAction",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/network_policy_ruleLogAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Network Policy Rule Advanced Action provides additional OPTIONS along with RuleAction and PBRRuleAction.",
        "x-f5xc-description-medium": "Network Policy Rule Advanced Action provides additional OPTIONS along with RuleAction and PBRRuleAction.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for network_policy_ruleNetworkPolicyRuleAdvancedAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Network policy rules are platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaAwsVpcList": {
        "type": "object",
        "description": "List of VPC Identifiers in AWS.",
        "title": "AWS VPC List",
        "x-displayname": "AWS VPC List.",
        "x-ves-proto-message": "ves.io.schema.AwsVpcList",
        "properties": {
          "vpc_id": {
            "type": "array",
            "description": "List of VPC Identifiers in AWS.",
            "title": "AWS VPC List",
            "maxItems": 256,
            "items": {
              "type": "string",
              "maxLength": 64
            },
            "x-displayname": "AWS VPC List.",
            "x-ves-example": "[VPC-1234567890abcdef0, VPC-1234567890abcdef1]",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "64",
              "ves.io.schema.rules.repeated.items.string.pattern": "^(vpc-)([a-z0-9]{8}|[a-z0-9]{17})$",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "[vpc-1234567890abcdef0, vpc-1234567890abcdef1]",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "64",
              "ves.io.schema.rules.repeated.items.string.pattern": "^(vpc-)([a-z0-9]{8}|[a-z0-9]{17})$",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaAwsVpcList",
          "required_fields": [
            "vpc_id"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"vpc_id\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "vpc_id:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaIpPrefixSetRefType__ves_io_schema_views_network_policy_view": {
        "type": "object",
        "description": "A list of references to ip_prefix_set objects.",
        "title": "IpPrefixSetRefType",
        "x-displayname": "IP Prefix Set Reference.",
        "x-ves-proto-message": "ves.io.schema.IpPrefixSetRefType",
        "properties": {
          "ref": {
            "type": "array",
            "description": "A list of references to ip_prefix_set objects.",
            "title": "ref",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Reference",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-description-short": "List of references to ip_prefix_set objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of references to ip_prefix_set objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaIpPrefixSetRefType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "IP prefix sets benefit from centralized management for reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaLabelMatcherType": {
        "type": "object",
        "description": "A label matcher specifies a list of label keys whose values need to match for\nsource/client and destination/server. Note that the actual label values are not\nspecified and do not matter. This allows an ability to scope grouping by the\nlabel key name.",
        "title": "LabelMatcherType",
        "x-displayname": "Label Matcher.",
        "x-ves-proto-message": "ves.io.schema.LabelMatcherType",
        "properties": {
          "keys": {
            "type": "array",
            "description": "The list of label key names that have to match.",
            "title": "keys",
            "maxItems": 16,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "x-displayname": "Keys",
            "x-ves-example": "['environment', 'location', 'deployment']",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "64",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['environment', 'location', 'deployment']",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "64",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "The list of label key names that have to match.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Label matcher specifies a list of label keys whose values need to match for source/client and destination/server.",
        "x-f5xc-description-medium": "Label matcher specifies a list of label keys whose values need to match for source/client and destination/server. Note that the actual label values are not specified and do not matter. This allows an ability to scope grouping by the label key name.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaLabelMatcherType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "label",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Label management is platform-level"
          },
          "classification": {
            "category": "infrastructure",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaMetricLabelOp": {
        "type": "string",
        "description": "The operator to use when filtering metrics based on label values.",
        "title": "Metric Label Operator",
        "enum": [
          "EQ",
          "NEQ"
        ],
        "default": "EQ",
        "x-displayname": "Metric Label Operator.",
        "x-ves-proto-enum": "ves.io.schema.MetricLabelOp",
        "x-f5xc-description-short": "The operator to use when filtering metrics based on label values.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaMetricLabelOp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"EQ\"",
          "example_yaml": "EQ\n..."
        },
        "x-f5xc-cli-domain": "label",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaPrefixListType": {
        "type": "object",
        "description": "List of IP Address prefixes. Prefix must contain both prefix and prefix-length\nThe list can contain mix of both IPv4 and IPv6 prefixes.",
        "title": "IP Prefix List",
        "x-displayname": "IP Prefix List.",
        "x-ves-proto-message": "ves.io.schema.PrefixListType",
        "properties": {
          "prefix": {
            "type": "array",
            "description": "IP Address prefix in string format. String must contain both prefix and prefix-length.",
            "title": "Prefix",
            "maxItems": 256,
            "items": {
              "type": "string"
            },
            "x-displayname": "Prefix",
            "x-ves-example": "[192.0.2.0/24, 192.0.2.0/24]\"",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true",
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-f5xc-example": "\"[192.0.2.0/24, 192.0.2.0/24]\"\"",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.ipv4_prefix": "true",
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-f5xc-description-short": "IP Address prefix in string format. String must contain both prefix and prefix-length.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of IP Address prefixes. Prefix must contain both prefix and prefix-length The list can contain mix of both IPv4 and IPv6 prefixes.",
        "x-f5xc-description-medium": "List of IP Address prefixes. Prefix must contain both prefix and prefix-length The list can contain mix of both IPv4 and IPv6 prefixes.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaPrefixListType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaenhanced_firewall_policyCreateSpecType": {
        "type": "object",
        "description": "Shape of Enhanced Firewall Policy specification.",
        "title": "CreateSpecType",
        "x-displayname": "Create Enhanced Firewall Policy.",
        "x-ves-oneof-field-rule_choice": "[\"allow_all\",\"allowed_destinations\",\"allowed_sources\",\"denied_destinations\",\"denied_sources\",\"deny_all\",\"rule_list\"]",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.CreateSpecType",
        "properties": {
          "allow_all": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "allowed_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "allowed_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "denied_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for denied destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "denied_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for denied sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "deny_all",
              "rule_list"
            ]
          },
          "deny_all": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "rule_list"
            ]
          },
          "rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyRuleListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of Enhanced Firewall Policy specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaenhanced_firewall_policyCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaenhanced_firewall_policyGetSpecType": {
        "type": "object",
        "description": "Shape of the Enhanced Firewall Policy specification.",
        "title": "GetSpecType",
        "x-displayname": "GET Enhanced Firewall Policy.",
        "x-ves-oneof-field-rule_choice": "[\"allow_all\",\"allowed_destinations\",\"allowed_sources\",\"denied_destinations\",\"denied_sources\",\"deny_all\",\"rule_list\"]",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.GetSpecType",
        "properties": {
          "allow_all": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "allowed_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "allowed_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "denied_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for denied destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "denied_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for denied sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "deny_all",
              "rule_list"
            ]
          },
          "deny_all": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "rule_list"
            ]
          },
          "rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyRuleListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the Enhanced Firewall Policy specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaenhanced_firewall_policyGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaenhanced_firewall_policyReplaceSpecType": {
        "type": "object",
        "description": "Shape of Enhanced Firewall Policy replace specification.",
        "title": "ReplaceSpecType",
        "x-displayname": "Replace Enhanced Firewall Policy.",
        "x-ves-oneof-field-rule_choice": "[\"allow_all\",\"allowed_destinations\",\"allowed_sources\",\"denied_destinations\",\"denied_sources\",\"deny_all\",\"rule_list\"]",
        "x-ves-proto-message": "ves.io.schema.enhanced_firewall_policy.ReplaceSpecType",
        "properties": {
          "allow_all": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "allowed_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "allowed_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allowed sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "denied_destinations",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "denied_destinations": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for denied destinations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_sources",
              "deny_all",
              "rule_list"
            ]
          },
          "denied_sources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaPrefixListType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for denied sources.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "deny_all",
              "rule_list"
            ]
          },
          "deny_all": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "rule_list"
            ]
          },
          "rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/enhanced_firewall_policyEnhancedFirewallPolicyRuleListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all",
              "allowed_destinations",
              "allowed_sources",
              "denied_destinations",
              "denied_sources",
              "deny_all"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of Enhanced Firewall Policy replace specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaenhanced_firewall_policyReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "subscriptionSubscribeRequest__ves_io_schema_malware_protection_subscription": {
        "type": "object",
        "description": "Request to subscribe to Malware Protection.",
        "title": "SubscribeRequest",
        "x-displayname": "Subscribe Request.",
        "x-ves-proto-message": "ves.io.schema.malware_protection.subscription.SubscribeRequest",
        "x-f5xc-description-short": "Request to subscribe to Malware Protection.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for subscriptionSubscribeRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "billing_and_usage",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Subscriptions are platform-level billing"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "subscriptionSubscribeResponse__ves_io_schema_malware_protection_subscription": {
        "type": "object",
        "description": "Response of subscribe to Malware Protection.",
        "title": "SubscribeResponse",
        "x-displayname": "Subscribe Response.",
        "x-ves-proto-message": "ves.io.schema.malware_protection.subscription.SubscribeResponse",
        "x-f5xc-description-short": "Response of subscribe to Malware Protection.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for subscriptionSubscribeResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "billing_and_usage",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Subscriptions are platform-level billing"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "subscriptionUnsubscribeRequest__ves_io_schema_malware_protection_subscription": {
        "type": "object",
        "description": "Request to unsubscribe to Malware Protection.",
        "title": "UnsubscribeRequest",
        "x-displayname": "Unsubscribe Request.",
        "x-ves-proto-message": "ves.io.schema.malware_protection.subscription.UnsubscribeRequest",
        "x-f5xc-description-short": "Request to unsubscribe to Malware Protection.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for subscriptionUnsubscribeRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "billing_and_usage",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Subscriptions are platform-level billing"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "subscriptionUnsubscribeResponse__ves_io_schema_malware_protection_subscription": {
        "type": "object",
        "description": "Response of unsubscribe to Malware Protection.",
        "title": "UnsubscribeResponse",
        "x-displayname": "Unsubscribe Response.",
        "x-ves-proto-message": "ves.io.schema.malware_protection.subscription.UnsubscribeResponse",
        "x-f5xc-description-short": "Response of unsubscribe to Malware Protection.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for subscriptionUnsubscribeResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "billing_and_usage",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Subscriptions are platform-level billing"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "geo_location_setCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of geo_location_set",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/geo_location_setCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setCreateRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/geo_location_setGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setCreateSpecType": {
        "type": "object",
        "description": "Creates a Geolocation Set.",
        "title": "Geolocation",
        "x-displayname": "Create Geolocation.",
        "x-ves-oneof-field-location_choice": "[\"custom_geo_location_selector\",\"global\"]",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.CreateSpecType",
        "properties": {
          "custom_geo_location_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom geo location selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "global"
            ]
          },
          "global": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_geo_location_selector"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a geo_location_set",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read geo_location_set",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/geo_location_setCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/geo_location_setReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/geo_location_setGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/geo_location_setStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setGetSpecType": {
        "type": "object",
        "description": "Reads a Geolocation.",
        "title": "Geolocation Set",
        "x-displayname": "GET Geolocation Set.",
        "x-ves-oneof-field-location_choice": "[\"custom_geo_location_selector\",\"global\"]",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.GetSpecType",
        "properties": {
          "custom_geo_location_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom geo location selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "global"
            ]
          },
          "dns_load_balancers": {
            "type": "array",
            "description": "A list of DNS load balancers associated with this geo location set.",
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "DNS Load balancers.",
            "x-f5xc-description-short": "List of DNS load balancers associated with this geo location set.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "global": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_geo_location_selector"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of geo_location_set",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/geo_location_setListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setListResponseItem": {
        "type": "object",
        "description": "By default a summary of geo_location_set is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of geo_location_set",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this geo_location_set.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this geo_location_set.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this geo_location_set.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this geo_location_set.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates geo_location_set is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates geo_location_set is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/geo_location_setGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this geo_location_set.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this geo_location_set.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this geo_location_set.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/geo_location_setStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this geo_location_set.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this geo_location_set.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of geo_location_set is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of geo_location_set is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a geo_location_set",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/geo_location_setReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setReplaceRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setReplaceSpecType": {
        "type": "object",
        "description": "Amends a Geolocation Set.",
        "title": "Geolocation",
        "x-displayname": "Replace Geolocation Set.",
        "x-ves-oneof-field-location_choice": "[\"custom_geo_location_selector\",\"global\"]",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.ReplaceSpecType",
        "properties": {
          "custom_geo_location_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom geo location selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "global"
            ]
          },
          "global": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_geo_location_selector"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "geo_location_setStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Geo Location Set Status Object",
        "x-displayname": "Geo Location Set Status Object.",
        "x-ves-proto-message": "ves.io.schema.geo_location_set.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for geo_location_setStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Geo location sets are reusable across namespaces"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "healthcheckCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of healthcheck",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.healthcheck.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Health check configuration for monitoring origin servers",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "spec.interval",
            "spec.timeout",
            "spec.healthy_threshold",
            "spec.unhealthy_threshold"
          ],
          "mutually_exclusive_groups": [
            {
              "name": "health_check",
              "fields": [
                "spec.http_health_check",
                "spec.tcp_health_check",
                "spec.udp_icmp_health_check"
              ],
              "required": true,
              "reason": "Choose exactly one health check type"
            }
          ],
          "example_yaml": "apiVersion: v1\nkind: healthcheck\nmetadata:\n  name: http-health\n  namespace: default\nspec:\n  http_health_check:\n    path: /health\n    use_origin_server_name: {}\n  interval: 15\n  timeout: 3\n  unhealthy_threshold: 1\n  healthy_threshold: 3\n  jitter_percent: 30\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"http-health\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"http_health_check\": {\"path\": \"/health\", \"use_origin_server_name\": {}},\n    \"interval\": 15,\n    \"timeout\": 3,\n    \"unhealthy_threshold\": 1,\n    \"healthy_threshold\": 3,\n    \"jitter_percent\": 30\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.healthcheck.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckCreateSpecType": {
        "type": "object",
        "description": "Healthcheck object defines method to determine if the given Endpoint is healthy.\nSingle Healthcheck object can be referred to by one or many Cluster objects.",
        "title": "Create healthcheck",
        "x-displayname": "Create Health Check.",
        "x-ves-oneof-field-health_check": "[\"http_health_check\",\"tcp_health_check\",\"udp_icmp_health_check\"]",
        "x-ves-proto-message": "ves.io.schema.healthcheck.CreateSpecType",
        "properties": {
          "healthy_threshold": {
            "type": "integer",
            "description": "Number of successful responses before declaring healthy. In other words, this is\nthe number of healthy health checks required before a host is marked\nhealthy. Note that during startup, only a single successful health check is\nrequired to mark a host healthy.",
            "format": "int64",
            "x-displayname": "Healthy Threshold.",
            "x-ves-example": "2",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-example": "2",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-description-short": "Number of successful responses before declaring healthy.",
            "x-f5xc-description-medium": "Number of successful responses before declaring healthy. In other words, this is the number of healthy health checks required before a host is marked healthy. Note that during startup, only a single successful health check is required to mark a host healthy.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "threshold",
              "minimum": 1,
              "maximum": 16,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "threshold",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 3
          },
          "http_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckHttpHealthCheck"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp_health_check",
              "udp_icmp_health_check"
            ]
          },
          "interval": {
            "type": "integer",
            "description": "Time interval in seconds between two healthcheck requests.",
            "format": "int64",
            "x-displayname": "Interval",
            "x-ves-example": "10",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-example": "10",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-description-short": "Time interval in seconds between two healthcheck requests.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 600,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 15
          },
          "jitter_percent": {
            "type": "integer",
            "description": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "format": "int64",
            "x-displayname": "Jitter Percent.",
            "x-ves-example": "25",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-50"
            },
            "x-f5xc-example": "25",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-50"
            },
            "x-f5xc-description-short": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "x-f5xc-description-medium": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "timing",
              "ranges": [
                {
                  "minimum": 0,
                  "maximum": 0
                },
                {
                  "minimum": 10,
                  "maximum": 50
                }
              ],
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "timing",
                "note": "Non-contiguous: {0} union [10, 50] — values 1-9 rejected by API",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": 30
          },
          "tcp_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckTcpHealthCheck"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tcp health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_health_check",
              "udp_icmp_health_check"
            ]
          },
          "timeout": {
            "type": "integer",
            "description": "Timeout in seconds to wait for successful response. In other words, it is\nthe time to wait for a health check response. If the timeout is reached the\nhealth check attempt will be considered a failure.",
            "format": "int64",
            "x-displayname": "Timeout",
            "x-ves-example": "1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-description-short": "Timeout in seconds to wait for successful response. In other words, it is the time to wait for a health check response.",
            "x-f5xc-description-medium": "Timeout in seconds to wait for successful response. In other words, it is the time to wait for a health check response. If the timeout is reached the health check attempt will be considered a failure.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "timing",
              "minimum": 1,
              "maximum": 600,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "timing",
                "note": "API rejects timeout > 600 for healthchecks (global pattern says 3600)",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 3
          },
          "udp_icmp_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for udp icmp health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_health_check",
              "tcp_health_check"
            ]
          },
          "unhealthy_threshold": {
            "type": "integer",
            "description": "Number of failed responses before declaring unhealthy. In other words, this is\nthe number of unhealthy health checks required before a host is marked\nunhealthy. Note that for HTTP health checking if a host responds with 503\nthis threshold is ignored and the host is considered unhealthy immediately.",
            "format": "int64",
            "x-displayname": "Unhealthy Threshold.",
            "x-ves-example": "5",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-description-short": "Number of failed responses before declaring unhealthy.",
            "x-f5xc-description-medium": "Number of failed responses before declaring unhealthy. In other words, this is the number of unhealthy health checks required before a host is marked unhealthy. Note that for HTTP health checking if a host responds with 503 this threshold is ignored and the host is considered unhealthy immediately.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "threshold",
              "minimum": 1,
              "maximum": 16,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "threshold",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 1
          }
        },
        "x-f5xc-description-short": "Healthcheck object defines method to determine if the given Endpoint is healthy.",
        "x-f5xc-description-medium": "Healthcheck object defines method to determine if the given Endpoint is healthy. Single Healthcheck object can be referred to by one or many Cluster objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckCreateSpecType",
          "required_fields": [
            "healthy_threshold",
            "interval",
            "timeout",
            "unhealthy_threshold"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"healthy_threshold\": 1,\n  \"interval\": 1,\n  \"timeout\": 1,\n  \"unhealthy_threshold\": 1\n}",
          "example_yaml": "healthy_threshold: 1\ninterval: 1\ntimeout: 1\nunhealthy_threshold: 1"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "health_check": "http_health_check"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a healthcheck",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.healthcheck.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read healthcheck",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.healthcheck.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/healthcheckStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckGetSpecType": {
        "type": "object",
        "description": "Healthcheck object defines method to determine if the given Endpoint is healthy.\nSingle Healthcheck object can be referred to by one or many Cluster objects.",
        "title": "Get healthcheck",
        "x-displayname": "GET Health Check.",
        "x-ves-oneof-field-health_check": "[\"http_health_check\",\"tcp_health_check\",\"udp_icmp_health_check\"]",
        "x-ves-proto-message": "ves.io.schema.healthcheck.GetSpecType",
        "properties": {
          "healthy_threshold": {
            "type": "integer",
            "description": "Number of successful responses before declaring healthy. In other words, this is\nthe number of healthy health checks required before a host is marked\nhealthy. Note that during startup, only a single successful health check is\nrequired to mark a host healthy.",
            "format": "int64",
            "x-displayname": "Healthy Threshold.",
            "x-ves-example": "2",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-example": "2",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-description-short": "Number of successful responses before declaring healthy.",
            "x-f5xc-description-medium": "Number of successful responses before declaring healthy. In other words, this is the number of healthy health checks required before a host is marked healthy. Note that during startup, only a single successful health check is required to mark a host healthy.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "threshold",
              "minimum": 1,
              "maximum": 16,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "threshold",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 3
          },
          "http_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckHttpHealthCheck"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp_health_check",
              "udp_icmp_health_check"
            ]
          },
          "interval": {
            "type": "integer",
            "description": "Time interval in seconds between two healthcheck requests.",
            "format": "int64",
            "x-displayname": "Interval",
            "x-ves-example": "10",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-example": "10",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-description-short": "Time interval in seconds between two healthcheck requests.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 600,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 15
          },
          "jitter_percent": {
            "type": "integer",
            "description": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "format": "int64",
            "x-displayname": "Jitter Percent.",
            "x-ves-example": "25",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-50"
            },
            "x-f5xc-example": "25",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-50"
            },
            "x-f5xc-description-short": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "x-f5xc-description-medium": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "timing",
              "ranges": [
                {
                  "minimum": 0,
                  "maximum": 0
                },
                {
                  "minimum": 10,
                  "maximum": 50
                }
              ],
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "timing",
                "note": "Non-contiguous: {0} union [10, 50] — values 1-9 rejected by API",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": 30
          },
          "tcp_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckTcpHealthCheck"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tcp health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_health_check",
              "udp_icmp_health_check"
            ]
          },
          "timeout": {
            "type": "integer",
            "description": "Timeout in seconds to wait for successful response. In other words, it is\nthe time to wait for a health check response. If the timeout is reached the\nhealth check attempt will be considered a failure.",
            "format": "int64",
            "x-displayname": "Timeout",
            "x-ves-example": "1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-description-short": "Timeout in seconds to wait for successful response. In other words, it is the time to wait for a health check response.",
            "x-f5xc-description-medium": "Timeout in seconds to wait for successful response. In other words, it is the time to wait for a health check response. If the timeout is reached the health check attempt will be considered a failure.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "timing",
              "minimum": 1,
              "maximum": 600,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "timing",
                "note": "API rejects timeout > 600 for healthchecks (global pattern says 3600)",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 3
          },
          "udp_icmp_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for udp icmp health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_health_check",
              "tcp_health_check"
            ]
          },
          "unhealthy_threshold": {
            "type": "integer",
            "description": "Number of failed responses before declaring unhealthy. In other words, this is\nthe number of unhealthy health checks required before a host is marked\nunhealthy. Note that for HTTP health checking if a host responds with 503\nthis threshold is ignored and the host is considered unhealthy immediately.",
            "format": "int64",
            "x-displayname": "Unhealthy Threshold.",
            "x-ves-example": "5",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-description-short": "Number of failed responses before declaring unhealthy.",
            "x-f5xc-description-medium": "Number of failed responses before declaring unhealthy. In other words, this is the number of unhealthy health checks required before a host is marked unhealthy. Note that for HTTP health checking if a host responds with 503 this threshold is ignored and the host is considered unhealthy immediately.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "threshold",
              "minimum": 1,
              "maximum": 16,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "threshold",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 1
          }
        },
        "x-f5xc-description-short": "Healthcheck object defines method to determine if the given Endpoint is healthy.",
        "x-f5xc-description-medium": "Healthcheck object defines method to determine if the given Endpoint is healthy. Single Healthcheck object can be referred to by one or many Cluster objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckGetSpecType",
          "required_fields": [
            "healthy_threshold",
            "interval",
            "timeout",
            "unhealthy_threshold"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"healthy_threshold\": 1,\n  \"interval\": 1,\n  \"timeout\": 1,\n  \"unhealthy_threshold\": 1\n}",
          "example_yaml": "healthy_threshold: 1\ninterval: 1\ntimeout: 1\nunhealthy_threshold: 1"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "health_check": "http_health_check"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckHttpHealthCheck": {
        "type": "object",
        "description": "Healthy if \"GET\" method on URL \"HTTP(s)://<host>/<path>\" with optional \"<header>\" returns success.\n\"host\" is not used for DNS resolution. It is used as HTTP Header in the request.",
        "title": "HttpHealthCheck",
        "x-displayname": "HTTP Health Check.",
        "x-ves-displayorder": "6,2,5,3,4,8",
        "x-ves-oneof-field-host_header_choice": "[\"host_header\",\"use_origin_server_name\"]",
        "x-ves-proto-message": "ves.io.schema.healthcheck.HttpHealthCheck",
        "properties": {
          "expected_response": {
            "type": "string",
            "description": "Raw bytes expected in the response of HTTP health check. Input is to be given in Hex encoded format.\nIf left empty, then response body is not considered for evaluating health check status.",
            "title": "Expected response",
            "maxLength": 2048,
            "x-displayname": "Expected HTTP Response.",
            "x-ves-example": "00000034",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hex": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-example": "00000034",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hex": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-description-short": "Raw bytes expected in the response of HTTP health check. Input is to be given in Hex encoded format.",
            "x-f5xc-description-medium": "Raw bytes expected in the response of HTTP health check. Input is to be given in Hex encoded format. If left empty, then response body is not considered for evaluating health check status.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 2048,
              "format": "hex",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "",
            "x-f5xc-server-default": true
          },
          "expected_status_codes": {
            "type": "array",
            "description": "Specifies a list of HTTP response status codes considered healthy. To treat default HTTP expected\nstatus code 200 as healthy, user has to configure it explicitly. This is a list of strings, each\nof which is single HTTP status code or a range with start and end values separated by \"-\".",
            "title": "Expected Status Codes",
            "maxItems": 16,
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 10
            },
            "x-displayname": "Expected Status Codes.",
            "x-ves-example": "200-250",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.http_status_range": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "10",
              "ves.io.schema.rules.repeated.items.string.min_len": "3",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "200-250",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.http_status_range": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "10",
              "ves.io.schema.rules.repeated.items.string.min_len": "3",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Specifies a list of HTTP response status codes considered healthy.",
            "x-f5xc-description-medium": "Specifies a list of HTTP response status codes considered healthy. To treat default HTTP expected status code 200 as healthy, user has to configure it explicitly. This is a list of strings, each of which is single HTTP status code or a range with start and end values separated by \"-\".",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": [
              "200"
            ]
          },
          "headers": {
            "type": "object",
            "description": "Specifies a list of HTTP headers that should be added to each request that is sent to the\nhealth checked cluster. This is a list of key-value pairs.",
            "title": "Headers to add in health check request",
            "x-displayname": "Request Headers to Add.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "256",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "2048",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.string.max_len": "256",
              "ves.io.schema.rules.map.keys.string.min_len": "1",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "2048",
              "ves.io.schema.rules.map.values.string.min_len": "1"
            },
            "x-f5xc-description-short": "Specifies a list of HTTP headers that should be added to each request that is sent to the health checked cluster.",
            "x-f5xc-description-medium": "Specifies a list of HTTP headers that should be added to each request that is sent to the health checked cluster. This is a list of key-value pairs.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true
          },
          "host_header": {
            "type": "string",
            "description": "Exclusive with [use_origin_server_name]\nThe value of the host header.",
            "title": "host_header",
            "maxLength": 262,
            "x-displayname": "Host Header Value.",
            "x-ves-example": "One.F5 Distributed cloud.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hostport": "true",
              "ves.io.schema.rules.string.max_len": "262"
            },
            "x-f5xc-example": "one.F5 Distributed cloud.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hostport": "true",
              "ves.io.schema.rules.string.max_len": "262"
            },
            "x-f5xc-description-short": "Exclusive with [use_origin_server_name] The value of the host header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 262,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_origin_server_name"
            ]
          },
          "path": {
            "type": "string",
            "description": "Specifies the HTTP path that will be requested during health checking.",
            "title": "path",
            "maxLength": 2048,
            "x-displayname": "Path",
            "x-ves-example": "/healthcheck.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-example": "/healthcheck",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.http_path": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-description-short": "Specifies the HTTP path that will be requested during health checking.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 2048,
              "minLength": 1,
              "pattern": "^[/a-zA-Z0-9._-]+$",
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": "/"
          },
          "request_headers_to_remove": {
            "type": "array",
            "description": "Specifies a list of HTTP headers that should be removed from each request that is sent to the\nhealth checked cluster. This is a list of keys of headers.",
            "title": "Headers to be removed from health check request",
            "maxItems": 16,
            "items": {
              "type": "string",
              "maxLength": 256
            },
            "x-displayname": "Request Headers to Remove.",
            "x-ves-example": "User-agent.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "user-agent",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "Specifies a list of HTTP headers that should be removed from each request that is sent to the health checked cluster.",
            "x-f5xc-description-medium": "Specifies a list of HTTP headers that should be removed from each request that is sent to the health checked cluster. This is a list of keys of headers.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "use_http2": {
            "type": "boolean",
            "description": "If set, health checks will be made using HTTP/2.",
            "title": "Use HTTP2",
            "format": "boolean",
            "x-displayname": "Use HTTP2",
            "x-f5xc-example": "false",
            "x-f5xc-description-short": "If set, health checks will be made using HTTP/2.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": false,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": false
          },
          "use_origin_server_name": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": {},
            "x-f5xc-conflicts-with": [
              "host_header"
            ]
          }
        },
        "x-f5xc-description-short": "Healthy if \"GET\" method on URL \"HTTP(s)://<host>/<path>\" with optional \"<header>\" returns success. \"host\" is not used for DNS resolution.",
        "x-f5xc-description-medium": "Healthy if \"GET\" method on URL \"HTTP(s)://<host>/<path>\" with optional \"<header>\" returns success. \"host\" is not used for DNS resolution. It is used as HTTP Header in the request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckHttpHealthCheck",
          "required_fields": [
            "path"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"path\": \"/healthcheck\"\n}",
          "example_yaml": "path: /healthcheck"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of healthcheck",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.healthcheck.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/healthcheckListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckListResponseItem": {
        "type": "object",
        "description": "By default a summary of healthcheck is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of healthcheck",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.healthcheck.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this healthcheck.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this healthcheck.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this healthcheck.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this healthcheck.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates healthcheck is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates healthcheck is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckGetSpecType"
              }
            ],
            "description": "Desired state specification",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this healthcheck.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this healthcheck.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "description": "Metadata associated with the resource",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this healthcheck.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "description": "Owner or responsible party",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/healthcheckStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "description": "Data or content configuration",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this healthcheck.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of healthcheck is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of healthcheck is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a healthcheck",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.healthcheck.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Health check configuration for monitoring origin servers",
          "required_fields": [],
          "mutually_exclusive_groups": [
            {
              "name": "health_check",
              "fields": [
                "spec.http_health_check",
                "spec.tcp_health_check",
                "spec.udp_icmp_health_check"
              ],
              "required": true,
              "reason": "Choose exactly one health check type"
            }
          ],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.healthcheck.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckReplaceSpecType": {
        "type": "object",
        "description": "Healthcheck object defines method to determine if the given Endpoint is healthy.\nSingle Healthcheck object can be referred to by one or many Cluster objects.",
        "title": "replace healthcheck",
        "x-displayname": "Replace Health Check.",
        "x-ves-oneof-field-health_check": "[\"http_health_check\",\"tcp_health_check\",\"udp_icmp_health_check\"]",
        "x-ves-proto-message": "ves.io.schema.healthcheck.ReplaceSpecType",
        "properties": {
          "healthy_threshold": {
            "type": "integer",
            "description": "Number of successful responses before declaring healthy. In other words, this is\nthe number of healthy health checks required before a host is marked\nhealthy. Note that during startup, only a single successful health check is\nrequired to mark a host healthy.",
            "format": "int64",
            "x-displayname": "Healthy Threshold.",
            "x-ves-example": "2",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-example": "2",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-description-short": "Number of successful responses before declaring healthy.",
            "x-f5xc-description-medium": "Number of successful responses before declaring healthy. In other words, this is the number of healthy health checks required before a host is marked healthy. Note that during startup, only a single successful health check is required to mark a host healthy.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "threshold",
              "minimum": 1,
              "maximum": 16,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "threshold",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 3
          },
          "http_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckHttpHealthCheck"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tcp_health_check",
              "udp_icmp_health_check"
            ]
          },
          "interval": {
            "type": "integer",
            "description": "Time interval in seconds between two healthcheck requests.",
            "format": "int64",
            "x-displayname": "Interval",
            "x-ves-example": "10",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-example": "10",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-description-short": "Time interval in seconds between two healthcheck requests.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 600,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 15
          },
          "jitter_percent": {
            "type": "integer",
            "description": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "format": "int64",
            "x-displayname": "Jitter Percent.",
            "x-ves-example": "25",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-50"
            },
            "x-f5xc-example": "25",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.ranges": "0,10-50"
            },
            "x-f5xc-description-short": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "x-f5xc-description-medium": "Add a random amount of time as a percent value to the interval between successive healthcheck requests.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "timing",
              "ranges": [
                {
                  "minimum": 0,
                  "maximum": 0
                },
                {
                  "minimum": 10,
                  "maximum": 50
                }
              ],
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "timing",
                "note": "Non-contiguous: {0} union [10, 50] — values 1-9 rejected by API",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": 30
          },
          "tcp_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/healthcheckTcpHealthCheck"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tcp health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_health_check",
              "udp_icmp_health_check"
            ]
          },
          "timeout": {
            "type": "integer",
            "description": "Timeout in seconds to wait for successful response. In other words, it is\nthe time to wait for a health check response. If the timeout is reached the\nhealth check attempt will be considered a failure.",
            "format": "int64",
            "x-displayname": "Timeout",
            "x-ves-example": "1",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-example": "1",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "600"
            },
            "x-f5xc-description-short": "Timeout in seconds to wait for successful response. In other words, it is the time to wait for a health check response.",
            "x-f5xc-description-medium": "Timeout in seconds to wait for successful response. In other words, it is the time to wait for a health check response. If the timeout is reached the health check attempt will be considered a failure.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "timing",
              "minimum": 1,
              "maximum": 600,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "timing",
                "note": "API rejects timeout > 600 for healthchecks (global pattern says 3600)",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 3
          },
          "udp_icmp_health_check": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for udp icmp health check.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_health_check",
              "tcp_health_check"
            ]
          },
          "unhealthy_threshold": {
            "type": "integer",
            "description": "Number of failed responses before declaring unhealthy. In other words, this is\nthe number of unhealthy health checks required before a host is marked\nunhealthy. Note that for HTTP health checking if a host responds with 503\nthis threshold is ignored and the host is considered unhealthy immediately.",
            "format": "int64",
            "x-displayname": "Unhealthy Threshold.",
            "x-ves-example": "5",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "16"
            },
            "x-f5xc-description-short": "Number of failed responses before declaring unhealthy.",
            "x-f5xc-description-medium": "Number of failed responses before declaring unhealthy. In other words, this is the number of unhealthy health checks required before a host is marked unhealthy. Note that for HTTP health checking if a host responds with 503 this threshold is ignored and the host is considered unhealthy immediately.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "threshold",
              "minimum": 1,
              "maximum": 16,
              "multipleOf": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "threshold",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 1
          }
        },
        "x-f5xc-description-short": "Healthcheck object defines method to determine if the given Endpoint is healthy.",
        "x-f5xc-description-medium": "Healthcheck object defines method to determine if the given Endpoint is healthy. Single Healthcheck object can be referred to by one or many Cluster objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckReplaceSpecType",
          "required_fields": [
            "healthy_threshold",
            "interval",
            "timeout",
            "unhealthy_threshold"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"healthy_threshold\": 1,\n  \"interval\": 1,\n  \"timeout\": 1,\n  \"unhealthy_threshold\": 1\n}",
          "example_yaml": "healthy_threshold: 1\ninterval: 1\ntimeout: 1\nunhealthy_threshold: 1"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "health_check": "http_health_check"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Healthcheck Status",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.healthcheck.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/schemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "healthcheckTcpHealthCheck": {
        "type": "object",
        "description": "Healthy if TCP connection is successful and response payload matches <expected_response>",
        "title": "TcpHealthCheck",
        "x-displayname": "TCP Health Check.",
        "x-ves-proto-message": "ves.io.schema.healthcheck.TcpHealthCheck",
        "properties": {
          "expected_response": {
            "type": "string",
            "description": "Raw bytes expected in the request. Describes the encoding of the payload bytes in the payload.\nHex encoded payload.",
            "title": "expected response",
            "maxLength": 2048,
            "x-displayname": "Expected Response.",
            "x-ves-example": "00000034",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hex": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-example": "00000034",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hex": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-description-short": "Raw bytes expected in the request. Describes the encoding of the payload bytes in the payload.",
            "x-f5xc-description-medium": "Raw bytes expected in the request. Describes the encoding of the payload bytes in the payload. Hex encoded payload.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 2048,
              "format": "hex",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "send_payload": {
            "type": "string",
            "description": "Raw bytes sent in the request. Empty payloads imply a connect-only health check.\nDescribes the encoding of the payload bytes in the payload.\nHex encoded payload.",
            "title": "send payload",
            "maxLength": 2048,
            "x-displayname": "Send Payload.",
            "x-ves-example": "000000FF",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.hex": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-example": "000000FF",
            "x-validation-rules": {
              "ves.io.schema.rules.string.hex": "true",
              "ves.io.schema.rules.string.max_len": "2048"
            },
            "x-f5xc-description-short": "Raw bytes sent in the request. Empty payloads imply a connect-only health check.",
            "x-f5xc-description-medium": "Raw bytes sent in the request. Empty payloads imply a connect-only health check. Describes the encoding of the payload bytes in the payload. Hex encoded payload.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 2048,
              "format": "hex",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Healthy if TCP connection is successful and response payload matches <expected_response>.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for healthcheckTcpHealthCheck",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of origin_pool",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Backend origin servers or load balancing pool for distributing traffic",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "spec.origin_servers",
            "spec.port"
          ],
          "mutually_exclusive_groups": [],
          "example_yaml": "apiVersion: v1\nkind: origin_pool\nmetadata:\n  name: backend-pool\n  namespace: default\nspec:\n  origin_servers:\n    - public_name:\n        dns_name: backend1.example.com\n    - public_name:\n        dns_name: backend2.example.com\n  port: 8080\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"backend-pool\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"origin_servers\": [\n      {\"public_name\": {\"dns_name\": \"backend1.example.com\"}},\n      {\"public_name\": {\"dns_name\": \"backend2.example.com\"}}\n    ],\n    \"port\": 8080\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a origin_pool",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read origin_pool",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of origin_pool",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/origin_poolListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolListResponseItem": {
        "type": "object",
        "description": "By default a summary of origin_pool is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of origin_pool",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this origin_pool.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this origin_pool.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this origin_pool.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this origin_pool.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates origin_pool is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates origin_pool is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolGetSpecType"
              }
            ],
            "description": "Desired state specification",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this origin_pool.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this origin_pool.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "description": "Metadata associated with the resource",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this origin_pool.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "description": "Owner or responsible party",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "system_metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "description": "Data or content configuration",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this origin_pool.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of origin_pool is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of origin_pool is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolOriginPoolAdvancedOptions__ves_io_schema_views_origin_pool": {
        "type": "object",
        "description": "Configure Advanced OPTIONS for origin pool.",
        "title": "Origin Pool Advanced Options",
        "x-displayname": "Origin Pool Advanced OPTIONS.",
        "x-ves-oneof-field-circuit_breaker_choice": "[\"circuit_breaker\",\"default_circuit_breaker\",\"disable_circuit_breaker\"]",
        "x-ves-oneof-field-http_protocol_type": "[\"auto_http_config\",\"http1_config\",\"http2_options\"]",
        "x-ves-oneof-field-lb_source_ip_persistence_choice": "[\"disable_lb_source_ip_persistence\",\"enable_lb_source_ip_persistence\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-outlier_detection_choice": "[\"disable_outlier_detection\",\"outlier_detection\"]",
        "x-ves-oneof-field-panic_threshold_type": "[\"no_panic_threshold\",\"panic_threshold\"]",
        "x-ves-oneof-field-proxy_protocol_choice": "[\"disable_proxy_protocol\",\"proxy_protocol_v1\",\"proxy_protocol_v2\"]",
        "x-ves-oneof-field-subset_choice": "[\"disable_subsets\",\"enable_subsets\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.OriginPoolAdvancedOptions",
        "properties": {
          "auto_http_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "http1_config",
              "http2_options"
            ]
          },
          "circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterCircuitBreaker"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_circuit_breaker",
              "disable_circuit_breaker"
            ]
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to endpoints in the cluster.\nThis is specified in milliseconds. The default value is 2 seconds.",
            "title": "connection_timeout",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to endpoints in the cluster. This is specified in milliseconds. The default value is 2 seconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1800000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": 0,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": 2000
          },
          "default_circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "circuit_breaker",
              "disable_circuit_breaker"
            ]
          },
          "disable_circuit_breaker": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable circuit breaker.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "circuit_breaker",
              "default_circuit_breaker"
            ]
          },
          "disable_lb_source_ip_persistence": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-wire-name": "disable_lb_source_ip_persistance",
            "description": "IP address configuration",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_lb_source_ip_persistence"
            ]
          },
          "disable_outlier_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable outlier detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "outlier_detection"
            ]
          },
          "disable_proxy_protocol": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable proxy protocol.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "proxy_protocol_v1",
              "proxy_protocol_v2"
            ]
          },
          "disable_subsets": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable subsets.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "enable_subsets"
            ]
          },
          "enable_lb_source_ip_persistence": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-wire-name": "enable_lb_source_ip_persistance",
            "description": "IP address configuration",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_lb_source_ip_persistence"
            ]
          },
          "enable_subsets": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginPoolSubsets"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable subsets.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_subsets"
            ]
          },
          "http1_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp1ProtocolOptions"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http2_options"
            ]
          },
          "http2_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterHttp2ProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http2 options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auto_http_config",
              "http1_config"
            ]
          },
          "http_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 5 minutes.",
            "title": "http_idle_timeout",
            "format": "int64",
            "x-displayname": "HTTP Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for upstream connection pool connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "default": 0,
            "x-f5xc-server-default": true,
            "x-f5xc-recommended-value": 300000
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\nSets the maximum number of requests allowed per connection to the origin server.\nEnter a value >=1 to define the request limit per connection.",
            "title": "Maximum Requests Per Connection",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests allowed per connection to the origin server. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_panic_threshold": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no panic threshold.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "panic_threshold"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "outlier_detection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterOutlierDetectionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for outlier detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_outlier_detection"
            ]
          },
          "panic_threshold": {
            "type": "integer",
            "description": "Exclusive with [no_panic_threshold]\n\nConfigure a threshold (percentage of unhealthy endpoints) below which\nall endpoints will be considered for load balancing ignoring its health status.",
            "title": "Panic threshold",
            "format": "int64",
            "x-displayname": "Panic threshold.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-example": "25",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "100"
            },
            "x-f5xc-description-short": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for...",
            "x-f5xc-description-medium": "Exclusive with [no_panic_threshold] Configure a threshold (percentage of unhealthy endpoints) below which all endpoints will be considered for load balancing ignoring its health status.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 100,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_panic_threshold"
            ]
          },
          "proxy_protocol_v1": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v1.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v2"
            ]
          },
          "proxy_protocol_v2": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for proxy protocol v2.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_proxy_protocol",
              "proxy_protocol_v1"
            ]
          }
        },
        "x-f5xc-description-short": "Configure Advanced OPTIONS for origin pool.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolOriginPoolAdvancedOptions",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a origin_pool",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsorigin_poolReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Backend origin servers or load balancing pool for distributing traffic",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "origin_poolReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for origin_poolReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsorigin_poolCreateSpecType": {
        "type": "object",
        "description": "Shape of the origin pool create specification.",
        "title": "CreateSpecType",
        "x-displayname": "Create Origin Pool.",
        "x-ves-oneof-field-health_check_port_choice": "[\"health_check_port\",\"same_as_endpoint_port\"]",
        "x-ves-oneof-field-port_choice": "[\"automatic_port\",\"lb_port\",\"port\"]",
        "x-ves-oneof-field-tls_choice": "[\"no_tls\",\"use_tls\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.CreateSpecType",
        "properties": {
          "advanced_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginPoolAdvancedOptions__ves_io_schema_views_origin_pool"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advanced options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "automatic_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "lb_port",
              "port"
            ]
          },
          "endpoint_selection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterEndpointSelectionPolicy"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "DISTRIBUTED",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "DISTRIBUTED",
                "LOCAL_ONLY",
                "LOCAL_PREFERRED"
              ],
              "default": "DISTRIBUTED",
              "description": "Policy for selecting endpoints from local/remote sites"
            }
          },
          "health_check_port": {
            "type": "integer",
            "description": "Exclusive with [same_as_endpoint_port]\nPort used for performing health check.",
            "format": "int64",
            "x-displayname": "Health check port.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [same_as_endpoint_port] Port used for performing health check.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "networking",
              "minimum": 0,
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "networking",
                "note": "Asymmetry: port enforces [1,65535], health_check_port allows 0",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "same_as_endpoint_port"
            ]
          },
          "healthcheck": {
            "type": "array",
            "description": "Reference to healthcheck configuration objects.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Health Check object.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "Reference to healthcheck configuration objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "lb_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "port"
            ]
          },
          "loadbalancer_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterLoadbalancerAlgorithm"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for loadbalancer algorithm.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "ROUND_ROBIN",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ROUND_ROBIN",
                "LEAST_REQUEST",
                "RING_HASH",
                "RANDOM",
                "LB_OVERRIDE"
              ],
              "default": "ROUND_ROBIN",
              "description": "Load balancing algorithm for distributing traffic"
            }
          },
          "no_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "use_tls"
            ]
          },
          "origin_servers": {
            "type": "array",
            "description": "List of origin servers in this pool.",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/origin_poolOriginServerType"
            },
            "x-displayname": "Origin Servers.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "private_name.site_locator",
                "required": true,
                "reason": "private_name requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "private_ip.site_locator",
                "required": true,
                "reason": "private_ip requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "k8s_service.site_locator",
                "required": true,
                "reason": "k8s_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "consul_service.site_locator",
                "required": true,
                "reason": "consul_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "*.site_locator.choice",
                "required": true,
                "reason": "site_locator requires oneOf choice: site or virtual_site (400: 'choice should be not nil')"
              }
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [automatic_port lb_port]\nEndpoint service is available on this port.",
            "format": "int64",
            "x-displayname": "Port",
            "x-ves-example": "9080",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "9080",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [automatic_port lb_port] Endpoint service is available on this port.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 443,
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "lb_port"
            ]
          },
          "same_as_endpoint_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "health_check_port"
            ]
          },
          "upstream_conn_pool_reuse_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamConnPoolReuseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolUpstreamTlsParameters"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_tls"
            ],
            "x-f5xc-requires": [
              {
                "field": "tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400: 'tls_config should be not nil')"
              },
              {
                "field": "use_mtls.tls_certificates",
                "required": true,
                "reason": "use_mtls requires at least one TLS certificate (400: 'tls_certificates should have minimum items of 1')",
                "min_items": 1
              }
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the origin pool create specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsorigin_poolCreateSpecType",
          "required_fields": [
            "origin_servers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"origin_servers\": [\n    {}\n  ]\n}",
          "example_yaml": "origin_servers:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "port_choice": "port",
          "upstream_conn_pool_reuse": "enable_conn_pool_reuse",
          "health_check_port_choice": "same_as_endpoint_port",
          "tls_choice": "no_tls",
          "circuit_breaker_choice": "default_circuit_breaker",
          "outlier_detection_choice": "disable_outlier_detection",
          "panic_threshold_type": "no_panic_threshold",
          "subset_choice": "disable_subsets",
          "http_protocol_type": "auto_http_config",
          "proxy_protocol_choice": "disable_proxy_protocol",
          "lb_source_ip_persistence_choice": "disable_lb_source_ip_persistance"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsorigin_poolGetSpecType": {
        "type": "object",
        "description": "Shape of the origin pool GET specification.",
        "title": "GetSpecType",
        "x-displayname": "GET Origin Pool.",
        "x-ves-oneof-field-health_check_port_choice": "[\"health_check_port\",\"same_as_endpoint_port\"]",
        "x-ves-oneof-field-port_choice": "[\"automatic_port\",\"lb_port\",\"port\"]",
        "x-ves-oneof-field-tls_choice": "[\"no_tls\",\"use_tls\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.GetSpecType",
        "properties": {
          "advanced_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginPoolAdvancedOptions__ves_io_schema_views_origin_pool"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advanced options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "automatic_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "lb_port",
              "port"
            ]
          },
          "endpoint_selection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterEndpointSelectionPolicy"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "DISTRIBUTED",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "DISTRIBUTED",
                "LOCAL_ONLY",
                "LOCAL_PREFERRED"
              ],
              "default": "DISTRIBUTED",
              "description": "Policy for selecting endpoints from local/remote sites"
            }
          },
          "health_check_port": {
            "type": "integer",
            "description": "Exclusive with [same_as_endpoint_port]\nPort used for performing health check.",
            "format": "int64",
            "x-displayname": "Health check port.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [same_as_endpoint_port] Port used for performing health check.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "networking",
              "minimum": 0,
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "networking",
                "note": "Asymmetry: port enforces [1,65535], health_check_port allows 0",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "same_as_endpoint_port"
            ]
          },
          "healthcheck": {
            "type": "array",
            "description": "Reference to healthcheck configuration objects.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Health Check object.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "Reference to healthcheck configuration objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "lb_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "port"
            ]
          },
          "loadbalancer_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterLoadbalancerAlgorithm"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for loadbalancer algorithm.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "ROUND_ROBIN",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ROUND_ROBIN",
                "LEAST_REQUEST",
                "RING_HASH",
                "RANDOM",
                "LB_OVERRIDE"
              ],
              "default": "ROUND_ROBIN",
              "description": "Load balancing algorithm for distributing traffic"
            }
          },
          "no_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "use_tls"
            ]
          },
          "origin_servers": {
            "type": "array",
            "description": "List of origin servers in this pool.",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/origin_poolOriginServerType"
            },
            "x-displayname": "Origin Servers.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "private_name.site_locator",
                "required": true,
                "reason": "private_name requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "private_ip.site_locator",
                "required": true,
                "reason": "private_ip requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "k8s_service.site_locator",
                "required": true,
                "reason": "k8s_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "consul_service.site_locator",
                "required": true,
                "reason": "consul_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "*.site_locator.choice",
                "required": true,
                "reason": "site_locator requires oneOf choice: site or virtual_site (400: 'choice should be not nil')"
              }
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [automatic_port lb_port]\nEndpoint service is available on this port.",
            "format": "int64",
            "x-displayname": "Port",
            "x-ves-example": "9080",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "9080",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [automatic_port lb_port] Endpoint service is available on this port.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 443,
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "lb_port"
            ]
          },
          "same_as_endpoint_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "health_check_port"
            ]
          },
          "upstream_conn_pool_reuse_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamConnPoolReuseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolUpstreamTlsParameters"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_tls"
            ],
            "x-f5xc-requires": [
              {
                "field": "tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400: 'tls_config should be not nil')"
              },
              {
                "field": "use_mtls.tls_certificates",
                "required": true,
                "reason": "use_mtls requires at least one TLS certificate (400: 'tls_certificates should have minimum items of 1')",
                "min_items": 1
              }
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the origin pool GET specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsorigin_poolGetSpecType",
          "required_fields": [
            "origin_servers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"origin_servers\": [\n    {}\n  ]\n}",
          "example_yaml": "origin_servers:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "port_choice": "port",
          "upstream_conn_pool_reuse": "enable_conn_pool_reuse",
          "health_check_port_choice": "same_as_endpoint_port",
          "tls_choice": "no_tls",
          "circuit_breaker_choice": "default_circuit_breaker",
          "outlier_detection_choice": "disable_outlier_detection",
          "panic_threshold_type": "no_panic_threshold",
          "subset_choice": "disable_subsets",
          "http_protocol_type": "auto_http_config",
          "proxy_protocol_choice": "disable_proxy_protocol",
          "lb_source_ip_persistence_choice": "disable_lb_source_ip_persistance"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsorigin_poolReplaceSpecType": {
        "type": "object",
        "description": "Shape of the origin pool create specification.",
        "title": "ReplaceSpecType",
        "x-displayname": "Replace Origin Pool.",
        "x-ves-oneof-field-health_check_port_choice": "[\"health_check_port\",\"same_as_endpoint_port\"]",
        "x-ves-oneof-field-port_choice": "[\"automatic_port\",\"lb_port\",\"port\"]",
        "x-ves-oneof-field-tls_choice": "[\"no_tls\",\"use_tls\"]",
        "x-ves-proto-message": "ves.io.schema.views.origin_pool.ReplaceSpecType",
        "properties": {
          "advanced_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolOriginPoolAdvancedOptions__ves_io_schema_views_origin_pool"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for advanced options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "automatic_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "lb_port",
              "port"
            ]
          },
          "endpoint_selection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterEndpointSelectionPolicy"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "DISTRIBUTED",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "DISTRIBUTED",
                "LOCAL_ONLY",
                "LOCAL_PREFERRED"
              ],
              "default": "DISTRIBUTED",
              "description": "Policy for selecting endpoints from local/remote sites"
            }
          },
          "health_check_port": {
            "type": "integer",
            "description": "Exclusive with [same_as_endpoint_port]\nPort used for performing health check.",
            "format": "int64",
            "x-displayname": "Health check port.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [same_as_endpoint_port] Port used for performing health check.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "networking",
              "minimum": 0,
              "maximum": 65535,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "category": "networking",
                "note": "Asymmetry: port enforces [1,65535], health_check_port allows 0",
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "same_as_endpoint_port"
            ]
          },
          "healthcheck": {
            "type": "array",
            "description": "Reference to healthcheck configuration objects.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Health Check object.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-short": "Reference to healthcheck configuration objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "lb_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "port"
            ]
          },
          "loadbalancer_algorithm": {
            "allOf": [
              {
                "$ref": "#/components/schemas/clusterLoadbalancerAlgorithm"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for loadbalancer algorithm.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": "ROUND_ROBIN",
            "x-f5xc-server-default": true,
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ROUND_ROBIN",
                "LEAST_REQUEST",
                "RING_HASH",
                "RANDOM",
                "LB_OVERRIDE"
              ],
              "default": "ROUND_ROBIN",
              "description": "Load balancing algorithm for distributing traffic"
            }
          },
          "no_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "use_tls"
            ]
          },
          "origin_servers": {
            "type": "array",
            "description": "List of origin servers in this pool.",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/origin_poolOriginServerType"
            },
            "x-displayname": "Origin Servers.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-requires": [
              {
                "field": "private_name.site_locator",
                "required": true,
                "reason": "private_name requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "private_ip.site_locator",
                "required": true,
                "reason": "private_ip requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "k8s_service.site_locator",
                "required": true,
                "reason": "k8s_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "consul_service.site_locator",
                "required": true,
                "reason": "consul_service requires site_locator (400: 'site_locator should be not nil')"
              },
              {
                "field": "*.site_locator.choice",
                "required": true,
                "reason": "site_locator requires oneOf choice: site or virtual_site (400: 'choice should be not nil')"
              }
            ]
          },
          "port": {
            "type": "integer",
            "description": "Exclusive with [automatic_port lb_port]\nEndpoint service is available on this port.",
            "format": "int64",
            "x-displayname": "Port",
            "x-ves-example": "9080",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "9080",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-description-short": "Exclusive with [automatic_port lb_port] Endpoint service is available on this port.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-recommended-value": 443,
            "x-f5xc-conflicts-with": [
              "automatic_port",
              "lb_port"
            ]
          },
          "same_as_endpoint_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "health_check_port"
            ]
          },
          "upstream_conn_pool_reuse_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaUpstreamConnPoolReuseType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "use_tls": {
            "allOf": [
              {
                "$ref": "#/components/schemas/origin_poolUpstreamTlsParameters"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_tls"
            ],
            "x-f5xc-requires": [
              {
                "field": "tls_config",
                "required": true,
                "reason": "use_tls requires tls_config sub-field (400: 'tls_config should be not nil')"
              },
              {
                "field": "use_mtls.tls_certificates",
                "required": true,
                "reason": "use_mtls requires at least one TLS certificate (400: 'tls_certificates should have minimum items of 1')",
                "min_items": 1
              }
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the origin pool create specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsorigin_poolReplaceSpecType",
          "required_fields": [
            "origin_servers"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"origin_servers\": [\n    {}\n  ]\n}",
          "example_yaml": "origin_servers:\n- {}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-recommended-oneof-variant": {
          "port_choice": "port",
          "upstream_conn_pool_reuse": "enable_conn_pool_reuse",
          "health_check_port_choice": "same_as_endpoint_port",
          "tls_choice": "no_tls",
          "circuit_breaker_choice": "default_circuit_breaker",
          "outlier_detection_choice": "disable_outlier_detection",
          "panic_threshold_type": "no_panic_threshold",
          "subset_choice": "disable_subsets",
          "http_protocol_type": "auto_http_config",
          "proxy_protocol_choice": "disable_proxy_protocol",
          "lb_source_ip_persistence_choice": "disable_lb_source_ip_persistance"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of proxy",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsproxyCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyCreateRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.proxy.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsproxyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a proxy",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyDynamicHttpProxyType": {
        "type": "object",
        "description": "Parameters for dynamic HTTP proxy.",
        "title": "Dynamic HTTP Proxy Type",
        "x-displayname": "Dynamic HTTP Proxy Type.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.DynamicHttpProxyType",
        "properties": {
          "more_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerAdvancedOptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for more option.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyDynamicHttpProxyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyDynamicHttpsProxyType": {
        "type": "object",
        "description": "Parameters for dynamic HTTPS proxy.",
        "title": "Dynamic HTTPS Proxy Type",
        "x-displayname": "Dynamic HTTPS Proxy Type.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.DynamicHttpsProxyType",
        "properties": {
          "more_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerAdvancedOptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for more option.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsDownstreamTlsParamsType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyDynamicHttpsProxyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyDynamicProxyType": {
        "type": "object",
        "title": "DynamicProxyType",
        "x-displayname": "DynamicProxyType.",
        "x-ves-oneof-field-dns_choice": "[\"disable_dns_masquerade\",\"enable_dns_masquerade\"]",
        "x-ves-oneof-field-proxy_choice": "[\"http_proxy\",\"https_proxy\",\"sni_proxy\"]",
        "x-ves-proto-message": "ves.io.schema.views.proxy.DynamicProxyType",
        "properties": {
          "disable_dns_masquerade": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable dns masquerade.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_dns_masquerade"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains to be proxied.\nWildcard hosts are supported in the suffix or prefix form\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.",
            "title": "Domains",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains to be proxied. Wildcard hosts are supported in the suffix or prefix form Supported Domains and search order: 1.",
            "x-f5xc-description-medium": "List of Domains to be proxied. Wildcard hosts are supported in the suffix or prefix form Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "enable_dns_masquerade": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable dns masquerade.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_dns_masquerade"
            ]
          },
          "http_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyDynamicHttpProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "https_proxy",
              "sni_proxy"
            ]
          },
          "https_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyDynamicHttpsProxyType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for https proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_proxy",
              "sni_proxy"
            ]
          },
          "sni_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyDynamicSniProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_proxy",
              "https_proxy"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyDynamicProxyType",
          "required_fields": [
            "domains"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domains\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "domains:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyDynamicSniProxyType": {
        "type": "object",
        "description": "Parameters for dynamic SNI proxy.",
        "title": "Dynamic SNI Proxy Type",
        "x-displayname": "Dynamic SNI Proxy Type.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.DynamicSniProxyType",
        "properties": {
          "idle_timeout": {
            "type": "integer",
            "description": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "title": "Idle timeout",
            "format": "int64",
            "x-displayname": "Idle Timeout.",
            "x-ves-example": "2000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "86400000"
            },
            "x-f5xc-example": "2000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "86400000"
            },
            "x-f5xc-description-short": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-description-medium": "The amount of time that a stream can exist without upstream or downstream activity, in milliseconds.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 86400000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyDynamicSniProxyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read proxy",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsproxyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/proxyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyHttpConnectProxyType": {
        "type": "object",
        "description": "Parameters for HTTP Connect Proxy.",
        "title": "Http Connect Proxy",
        "x-displayname": "HTTP Connect Proxy.",
        "x-ves-oneof-field-http_https_choice": "[\"enable_http\"]",
        "x-ves-proto-message": "ves.io.schema.views.proxy.HttpConnectProxyType",
        "properties": {
          "enable_http": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable http.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "more_option": {
            "allOf": [
              {
                "$ref": "#/components/schemas/http_loadbalancerAdvancedOptionsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for more option.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyHttpConnectProxyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of proxy",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/proxyListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyListResponseItem": {
        "type": "object",
        "description": "By default a summary of proxy is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of proxy",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.views.proxy.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this proxy.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this proxy.",
            "title": "description",
            "x-displayname": "Description.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates proxy is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates proxy is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsproxyGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this proxy.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this proxy.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/proxyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this proxy.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of proxy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of proxy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a proxy",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.views.proxy.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsproxyReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyReplaceRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.proxy.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "proxyStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "StatusObject",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.views.proxy.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions represent the normalized status values for configuration object.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions represent the normalized status values for configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Proxy view object direct reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for proxyStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaTlsInterceptionPolicy": {
        "type": "object",
        "description": "Policy to enable or disable TLS interception.",
        "title": "TlsInterceptionPolicy",
        "x-displayname": "TLS Interception Policy.",
        "x-ves-proto-message": "ves.io.schema.TlsInterceptionPolicy",
        "properties": {
          "interception_rules": {
            "type": "array",
            "description": "List of ordered rules to enable or disable for TLS interception.",
            "title": "Interception Rules",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaTlsInterceptionRule"
            },
            "x-displayname": "TLS Interception Rules.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of ordered rules to enable or disable for TLS interception.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Policy to enable or disable TLS interception.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsInterceptionPolicy",
          "required_fields": [
            "interception_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"interception_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "interception_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTlsInterceptionRule": {
        "type": "object",
        "description": "Rule to enable or disable TLS interception based on domain match.",
        "title": "TlsInterceptionRule",
        "x-displayname": "TLS Interception Rule.",
        "x-ves-oneof-field-enable_disable_choice": "[\"disable_interception\",\"enable_interception\"]",
        "x-ves-proto-message": "ves.io.schema.TlsInterceptionRule",
        "properties": {
          "disable_interception": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable interception.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_interception"
            ]
          },
          "domain_match": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaDomainType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for domain match.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_interception": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable interception.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_interception"
            ]
          }
        },
        "x-required": true,
        "x-f5xc-description-short": "Rule to enable or disable TLS interception based on domain match.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsInterceptionRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTlsInterceptionType": {
        "type": "object",
        "description": "Configuration to enable TLS interception.",
        "title": "TlsInterceptionType",
        "x-displayname": "Configuration for TLS interception.",
        "x-ves-oneof-field-interception_policy_choice": "[\"enable_for_all_domains\",\"policy\"]",
        "x-ves-oneof-field-signing_cert_choice": "[\"custom_certificate\",\"volterra_certificate\"]",
        "x-ves-oneof-field-trusted_ca_choice": "[\"trusted_ca_url\",\"volterra_trusted_ca\"]",
        "x-ves-proto-message": "ves.io.schema.TlsInterceptionType",
        "properties": {
          "custom_certificate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsCertificateType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom certificate.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "volterra_certificate"
            ]
          },
          "enable_for_all_domains": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for enable for all domains.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "policy"
            ]
          },
          "policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsInterceptionPolicy"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_for_all_domains"
            ]
          },
          "trusted_ca_url": {
            "type": "string",
            "description": "Exclusive with [volterra_trusted_ca]\nCustom Root CA Certificate for validating upstream server certificate.",
            "title": "Custom Root CA Certificate",
            "maxLength": 131072,
            "x-displayname": "Custom Root CA Certificate.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Exclusive with [volterra_trusted_ca] Custom Root CA Certificate for validating upstream server certificate.",
            "x-f5xc-description-medium": "Exclusive with [volterra_trusted_ca] Custom Root CA Certificate for validating upstream server certificate.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 131072,
              "byteLength": {
                "max": 131072
              },
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "volterra_trusted_ca"
            ]
          },
          "volterra_certificate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for volterra certificate.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "custom_certificate"
            ]
          },
          "volterra_trusted_ca": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for volterra trusted ca.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca_url"
            ]
          }
        },
        "x-f5xc-description-short": "Configuration to enable TLS interception.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsInterceptionType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemanetwork_firewallActiveForwardProxyPoliciesType": {
        "type": "object",
        "description": "Ordered List of Forward Proxy Policies active.",
        "title": "Active Forward Proxy Policies Type",
        "x-displayname": "Active Forward Proxy Policies Type.",
        "x-ves-proto-message": "ves.io.schema.network_firewall.ActiveForwardProxyPoliciesType",
        "properties": {
          "forward_proxy_policies": {
            "type": "array",
            "description": "Ordered List of Forward Proxy Policies active.",
            "title": "Forward Proxy Policies",
            "minItems": 1,
            "maxItems": 128,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Forward Proxy Policies.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "128",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-description-short": "Ordered List of Forward Proxy Policies active.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Ordered List of Forward Proxy Policies active.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemanetwork_firewallActiveForwardProxyPoliciesType",
          "required_fields": [
            "forward_proxy_policies"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"forward_proxy_policies\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "forward_proxy_policies:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Network firewall is platform-level security"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "viewsAdvertiseSiteVsite": {
        "type": "object",
        "description": "This defines a way to advertise a VIP on specific sites.",
        "title": "AdvertiseSiteVsite",
        "x-displayname": "Advertise Site or Virtual Site.",
        "x-ves-proto-message": "ves.io.schema.views.AdvertiseSiteVsite",
        "properties": {
          "advertise_where": {
            "type": "array",
            "description": "Where should this load balancer be available.",
            "title": "Advertise Where",
            "minItems": 1,
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/viewsWhereTypeSiteVsite"
            },
            "x-displayname": "List of Sites to Advertise.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Where should this load balancer be available.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Defines a way to advertise a VIP on specific sites.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsAdvertiseSiteVsite",
          "required_fields": [
            "advertise_where"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"advertise_where\": [\n    {}\n  ]\n}",
          "example_yaml": "advertise_where:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsWhereTypeSiteVsite": {
        "type": "object",
        "description": "This defines various OPTIONS where a Loadbalancer could be advertised.",
        "title": "WhereTypeSiteVsite",
        "x-displayname": "Select Where to Advertise.",
        "x-ves-displayorder": "3,4",
        "x-ves-oneof-field-choice": "[\"site\",\"virtual_site\"]",
        "x-ves-oneof-field-port_choice": "[\"port\",\"use_default_port\"]",
        "x-ves-proto-message": "ves.io.schema.views.WhereTypeSiteVsite",
        "properties": {
          "port": {
            "type": "integer",
            "description": "Exclusive with [use_default_port]\nTCP port to Listen.",
            "title": "TCP port to listen",
            "format": "int64",
            "x-displayname": "TCP Listen Port.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65535"
            },
            "x-f5xc-example": "8080",
            "x-f5xc-description-short": "Exclusive with [use_default_port] TCP port to Listen.",
            "minimum": 1,
            "maximum": 65535,
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65535,
              "multipleOf": 1,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_default_port"
            ]
          },
          "site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsWhereSite"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "virtual_site"
            ]
          },
          "use_default_port": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "port"
            ]
          },
          "virtual_site": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsWhereVirtualSite"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site"
            ]
          }
        },
        "x-f5xc-description-short": "Defines various OPTIONS where a Loadbalancer could be advertised.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsWhereTypeSiteVsite",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsproxyCreateSpecType": {
        "type": "object",
        "description": "Shape of the TCP loadbalancer create specification.",
        "title": "CreateSpecType",
        "x-displayname": "Create Proxy.",
        "x-ves-oneof-field-network_choice": "[\"site_local_inside_network\",\"site_local_network\"]",
        "x-ves-oneof-field-proxy_choice": "[\"dynamic_proxy\",\"http_proxy\"]",
        "x-ves-oneof-field-proxy_policy_choice": "[\"active_forward_proxy_policies\",\"no_forward_proxy_policy\"]",
        "x-ves-oneof-field-site_choice": "[\"do_not_advertise\",\"site_virtual_sites\"]",
        "x-ves-oneof-field-tls_interception_choice": "[\"no_interception\",\"tls_intercept\"]",
        "x-ves-proto-message": "ves.io.schema.views.proxy.CreateSpecType",
        "properties": {
          "active_forward_proxy_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemanetwork_firewallActiveForwardProxyPoliciesType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active forward proxy policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_forward_proxy_policy"
            ]
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to upstream server.\nThis is specified in milliseconds. The default value is 2000 (2 seconds)",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to upstream server. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to upstream server. This is specified in milliseconds. The default value is 2000 (2 seconds).",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1800000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_virtual_sites"
            ]
          },
          "dynamic_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyDynamicProxyType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for dynamic proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_proxy"
            ]
          },
          "http_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyHttpConnectProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "dynamic_proxy"
            ]
          },
          "no_forward_proxy_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_forward_proxy_policies"
            ]
          },
          "no_interception": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no interception.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_intercept"
            ]
          },
          "site_local_inside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_local_network"
            ]
          },
          "site_local_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_local_inside_network"
            ]
          },
          "site_virtual_sites": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseSiteVsite"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "do_not_advertise"
            ]
          },
          "tls_intercept": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsInterceptionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls intercept.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_interception"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the TCP loadbalancer create specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsproxyCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsproxyGetSpecType": {
        "type": "object",
        "description": "Shape of the TCP loadbalancer GET specification.",
        "title": "GetSpecType",
        "x-displayname": "GET Proxy",
        "x-ves-oneof-field-network_choice": "[\"site_local_inside_network\",\"site_local_network\"]",
        "x-ves-oneof-field-proxy_choice": "[\"dynamic_proxy\",\"http_proxy\"]",
        "x-ves-oneof-field-proxy_policy_choice": "[\"active_forward_proxy_policies\",\"no_forward_proxy_policy\"]",
        "x-ves-oneof-field-site_choice": "[\"do_not_advertise\",\"site_virtual_sites\"]",
        "x-ves-oneof-field-tls_interception_choice": "[\"no_interception\",\"tls_intercept\"]",
        "x-ves-proto-message": "ves.io.schema.views.proxy.GetSpecType",
        "properties": {
          "active_forward_proxy_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemanetwork_firewallActiveForwardProxyPoliciesType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active forward proxy policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_forward_proxy_policy"
            ]
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to upstream server.\nThis is specified in milliseconds. The default value is 2000 (2 seconds)",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to upstream server. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to upstream server. This is specified in milliseconds. The default value is 2000 (2 seconds).",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1800000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_virtual_sites"
            ]
          },
          "dynamic_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyDynamicProxyType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for dynamic proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_proxy"
            ]
          },
          "http_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyHttpConnectProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "dynamic_proxy"
            ]
          },
          "no_forward_proxy_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_forward_proxy_policies"
            ]
          },
          "no_interception": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no interception.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_intercept"
            ]
          },
          "site_local_inside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_local_network"
            ]
          },
          "site_local_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_local_inside_network"
            ]
          },
          "site_virtual_sites": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseSiteVsite"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "do_not_advertise"
            ]
          },
          "tls_intercept": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsInterceptionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls intercept.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_interception"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the TCP loadbalancer GET specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsproxyGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsproxyReplaceSpecType": {
        "type": "object",
        "description": "Shape of the TCP loadbalancer replace specification.",
        "title": "ReplaceSpecType",
        "x-displayname": "Replace Proxy.",
        "x-ves-oneof-field-network_choice": "[\"site_local_inside_network\",\"site_local_network\"]",
        "x-ves-oneof-field-proxy_choice": "[\"dynamic_proxy\",\"http_proxy\"]",
        "x-ves-oneof-field-proxy_policy_choice": "[\"active_forward_proxy_policies\",\"no_forward_proxy_policy\"]",
        "x-ves-oneof-field-site_choice": "[\"do_not_advertise\",\"site_virtual_sites\"]",
        "x-ves-oneof-field-tls_interception_choice": "[\"no_interception\",\"tls_intercept\"]",
        "x-ves-proto-message": "ves.io.schema.views.proxy.ReplaceSpecType",
        "properties": {
          "active_forward_proxy_policies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemanetwork_firewallActiveForwardProxyPoliciesType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for active forward proxy policies.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_forward_proxy_policy"
            ]
          },
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to upstream server.\nThis is specified in milliseconds. The default value is 2000 (2 seconds)",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1800000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to upstream server. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to upstream server. This is specified in milliseconds. The default value is 2000 (2 seconds).",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1800000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "do_not_advertise": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for do not advertise.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_virtual_sites"
            ]
          },
          "dynamic_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyDynamicProxyType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for dynamic proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "http_proxy"
            ]
          },
          "http_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/proxyHttpConnectProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "dynamic_proxy"
            ]
          },
          "no_forward_proxy_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "active_forward_proxy_policies"
            ]
          },
          "no_interception": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no interception.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_intercept"
            ]
          },
          "site_local_inside_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_local_network"
            ]
          },
          "site_local_network": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "site_local_inside_network"
            ]
          },
          "site_virtual_sites": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsAdvertiseSiteVsite"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "do_not_advertise"
            ]
          },
          "tls_intercept": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsInterceptionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls intercept.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_interception"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the TCP loadbalancer replace specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsproxyReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "policyCountryCodeList": {
        "type": "object",
        "description": "List of Country Codes to match against.",
        "title": "Country Code List",
        "x-displayname": "Country Codes List.",
        "x-ves-proto-message": "ves.io.schema.policy.CountryCodeList",
        "properties": {
          "country_codes": {
            "type": "array",
            "description": "List of Country Codes.",
            "title": "country codes",
            "minItems": 1,
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyCountryCode"
            },
            "x-displayname": "Country Codes List.",
            "x-ves-example": "IN, DE",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "IN, DE",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.min_items": "1",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "invert_match": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Match Result.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyCountryCodeList",
          "required_fields": [
            "country_codes"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"country_codes\": [\n    \"COUNTRY_NONE\"\n  ]\n}",
          "example_yaml": "country_codes:\n- COUNTRY_NONE"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policySegmentPolicyType": {
        "type": "object",
        "description": "Configure source and destination segment for policy.",
        "title": "Segment Choice",
        "x-displayname": "Configure Segments.",
        "x-ves-oneof-field-dst_segment_choice": "[\"dst_any\",\"dst_segments\",\"intra_segment\"]",
        "x-ves-oneof-field-src_segment_choice": "[\"src_any\",\"src_segments\"]",
        "x-ves-proto-message": "ves.io.schema.policy.SegmentPolicyType",
        "properties": {
          "dst_any": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "dst_segments",
              "intra_segment"
            ]
          },
          "dst_segments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSegmentRefList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for dst segments.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "dst_any",
              "intra_segment"
            ]
          },
          "intra_segment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for intra segment.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "dst_any",
              "dst_segments"
            ]
          },
          "src_any": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "src_segments"
            ]
          },
          "src_segments": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsSegmentRefList"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for src segments.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "src_any"
            ]
          }
        },
        "x-f5xc-description-short": "Configure source and destination segment for policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policySegmentPolicyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of rate_limiter_policy",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsrate_limiter_policyCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Rate limiter policy for controlling request rates to protected endpoints",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "mutually_exclusive_groups": [],
          "example_yaml": "apiVersion: v1\nkind: rate_limiter_policy\nmetadata:\n  name: example-rl\n  namespace: default\nspec:\n  any_server: {}\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"example-rl\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"any_server\": {}\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsrate_limiter_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a rate_limiter_policy",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read rate_limiter_policy",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiter_policyCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/rate_limiter_policyReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsrate_limiter_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/rate_limiter_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of rate_limiter_policy",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/rate_limiter_policyListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyListResponseItem": {
        "type": "object",
        "description": "By default a summary of rate_limiter_policy is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of rate_limiter_policy",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this rate_limiter_policy.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this rate_limiter_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this rate_limiter_policy.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this rate_limiter_policy.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates rate_limiter_policy is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates rate_limiter_policy is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsrate_limiter_policyGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this rate_limiter_policy.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this rate_limiter_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this rate_limiter_policy.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/rate_limiter_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this rate_limiter_policy.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this rate_limiter_policy.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of rate_limiter_policy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of rate_limiter_policy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyRateLimiterRule": {
        "type": "object",
        "description": "Shape of Rate Limiter Rule.",
        "title": "Rate Limiter Rule",
        "x-displayname": "Rate Limiter Rule.",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.RateLimiterRule",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policy_ruleRateLimiterRuleSpec"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyRateLimiterRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a rate_limiter_policy",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsrate_limiter_policyReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Rate limiter policy for controlling request rates to protected endpoints",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "rate_limiter_policyStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "StatusObject",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions represent the normalized status values for configuration object.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions represent the normalized status values for configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Rate limiter policy object direct reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-description-short": "Rate limiter policy object direct reference.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for rate_limiter_policyStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policy_ruleRateLimiterRuleSpec": {
        "type": "object",
        "description": "Shape of Rate Limiter Rule.",
        "title": "Rate Limiter Rule Spec",
        "x-displayname": "Rate Limiter Rule Specification.",
        "x-ves-oneof-field-action_choice": "[\"apply_rate_limiter\",\"bypass_rate_limiter\",\"custom_rate_limiter\"]",
        "x-ves-oneof-field-asn_choice": "[\"any_asn\",\"asn_list\",\"asn_matcher\"]",
        "x-ves-oneof-field-country_choice": "[\"any_country\",\"country_list\"]",
        "x-ves-oneof-field-ip_choice": "[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.RateLimiterRuleSpec",
        "properties": {
          "any_asn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher"
            ]
          },
          "any_country": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for any country.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "country_list"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "apply_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for apply rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bypass_rate_limiter",
              "custom_rate_limiter"
            ]
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_matcher"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_list"
            ]
          },
          "bypass_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for bypass rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "apply_rate_limiter",
              "custom_rate_limiter"
            ]
          },
          "country_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyCountryCodeList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_country"
            ]
          },
          "custom_rate_limiter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for custom rate limiter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "apply_rate_limiter",
              "bypass_rate_limiter"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "rate_limiter",
                "field_path": "custom_rate_limiter",
                "gated_by": {
                  "choice": "action_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "domain_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for domain matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_matcher"
            ]
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "segment_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policySegmentPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleRateLimiterRuleSpec",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsSegmentRefList": {
        "type": "object",
        "description": "List of references to Segments.",
        "title": "Segment List",
        "x-displayname": "Segment List.",
        "x-ves-proto-message": "ves.io.schema.views.SegmentRefList",
        "properties": {
          "segments": {
            "type": "array",
            "description": "Select list of segments.",
            "title": "Segments",
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "Segments",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsSegmentRefList",
          "required_fields": [
            "segments"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"segments\": [\n    {\n      \"name\": \"contacts-route\"\n    }\n  ]\n}",
          "example_yaml": "segments:\n- name: contacts-route"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "viewsrate_limiter_policyCreateSpecType": {
        "type": "object",
        "description": "Shape of the Rate Limiter Policy Create specification.",
        "title": "CreateSpecType",
        "x-displayname": "Create Specification.",
        "x-ves-oneof-field-server_choice": "[\"any_server\",\"server_name\",\"server_name_matcher\",\"server_selector\"]",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.CreateSpecType",
        "properties": {
          "any_server": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "server_name",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "rules": {
            "type": "array",
            "description": "A list of RateLimiterRules that are evaluated sequentially till a matching rule is identified.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/rate_limiter_policyRateLimiterRule"
            },
            "x-displayname": "Rules",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of RateLimiterRules that are evaluated sequentially till a matching rule is identified.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [any_server server_name_matcher server_selector]\nThe expected name of the server. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host for the request.",
            "maxLength": 256,
            "x-displayname": "Server Name.",
            "x-ves-example": "database.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "database.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server.",
            "x-f5xc-description-medium": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host for the request.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "server_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_selector"
            ]
          },
          "server_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for server selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_name_matcher"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the Rate Limiter Policy Create specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsrate_limiter_policyCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsrate_limiter_policyGetSpecType": {
        "type": "object",
        "description": "Shape of the Rate Limiter Policy GET specification.",
        "title": "GetSpecType",
        "x-displayname": "GET Specification.",
        "x-ves-oneof-field-server_choice": "[\"any_server\",\"server_name\",\"server_name_matcher\",\"server_selector\"]",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.GetSpecType",
        "properties": {
          "any_server": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "server_name",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "rules": {
            "type": "array",
            "description": "A list of RateLimiterRules that are evaluated sequentially till a matching rule is identified.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/rate_limiter_policyRateLimiterRule"
            },
            "x-displayname": "Rules",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of RateLimiterRules that are evaluated sequentially till a matching rule is identified.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [any_server server_name_matcher server_selector]\nThe expected name of the server. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host for the request.",
            "maxLength": 256,
            "x-displayname": "Server Name.",
            "x-ves-example": "database.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "database.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server.",
            "x-f5xc-description-medium": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host for the request.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "server_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_selector"
            ]
          },
          "server_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for server selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_name_matcher"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the Rate Limiter Policy GET specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsrate_limiter_policyGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "viewsrate_limiter_policyReplaceSpecType": {
        "type": "object",
        "description": "Shape of the Rate Limiter Policy Replace specification.",
        "title": "ReplaceSpecType",
        "x-displayname": "Replace Specification.",
        "x-ves-oneof-field-server_choice": "[\"any_server\",\"server_name\",\"server_name_matcher\",\"server_selector\"]",
        "x-ves-proto-message": "ves.io.schema.views.rate_limiter_policy.ReplaceSpecType",
        "properties": {
          "any_server": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "server_name",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "rules": {
            "type": "array",
            "description": "A list of RateLimiterRules that are evaluated sequentially till a matching rule is identified.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/rate_limiter_policyRateLimiterRule"
            },
            "x-displayname": "Rules",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of RateLimiterRules that are evaluated sequentially till a matching rule is identified.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": [],
            "x-f5xc-server-default": true
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [any_server server_name_matcher server_selector]\nThe expected name of the server. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host for the request.",
            "maxLength": 256,
            "x-displayname": "Server Name.",
            "x-ves-example": "database.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "database.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server.",
            "x-f5xc-description-medium": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host for the request.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "server_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_selector"
            ]
          },
          "server_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for server selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_name_matcher"
            ]
          }
        },
        "x-f5xc-description-short": "Shape of the Rate Limiter Policy Replace specification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for viewsrate_limiter_policyReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "rate_limiting",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Rate limiter policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyModifyAction": {
        "type": "object",
        "description": "Modify behavior for a matching request. The modification could be to entirely skip processing.",
        "title": "Select Modification Action",
        "x-displayname": "Select Modification Action.",
        "x-ves-oneof-field-action_type": "[\"default\",\"skip_processing\"]",
        "x-ves-proto-message": "ves.io.schema.policy.ModifyAction",
        "properties": {
          "default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "True",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "skip_processing"
            ]
          },
          "skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default"
            ]
          }
        },
        "x-f5xc-description-short": "Modify behavior for a matching request. The modification could be to entirely skip processing.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyModifyAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyRequestConstraintType": {
        "type": "object",
        "title": "RequestConstraintType",
        "x-displayname": "Request Constraints.",
        "x-ves-oneof-field-max_cookie_count_choice": "[\"max_cookie_count_exceeds\",\"max_cookie_count_none\"]",
        "x-ves-oneof-field-max_cookie_key_size_choice": "[\"max_cookie_key_size_exceeds\",\"max_cookie_key_size_none\"]",
        "x-ves-oneof-field-max_cookie_value_size_choice": "[\"max_cookie_value_size_exceeds\",\"max_cookie_value_size_none\"]",
        "x-ves-oneof-field-max_header_count_choice": "[\"max_header_count_exceeds\",\"max_header_count_none\"]",
        "x-ves-oneof-field-max_header_key_size_choice": "[\"max_header_key_size_exceeds\",\"max_header_key_size_none\"]",
        "x-ves-oneof-field-max_header_value_size_choice": "[\"max_header_value_size_exceeds\",\"max_header_value_size_none\"]",
        "x-ves-oneof-field-max_parameter_count_choice": "[\"max_parameter_count_exceeds\",\"max_parameter_count_none\"]",
        "x-ves-oneof-field-max_parameter_name_size_choice": "[\"max_parameter_name_size_exceeds\",\"max_parameter_name_size_none\"]",
        "x-ves-oneof-field-max_parameter_value_size_choice": "[\"max_parameter_value_size_exceeds\",\"max_parameter_value_size_none\"]",
        "x-ves-oneof-field-max_query_size_choice": "[\"max_query_size_exceeds\",\"max_query_size_none\"]",
        "x-ves-oneof-field-max_request_line_size_choice": "[\"max_request_line_size_exceeds\",\"max_request_line_size_none\"]",
        "x-ves-oneof-field-max_request_size_choice": "[\"max_request_size_exceeds\",\"max_request_size_none\"]",
        "x-ves-oneof-field-max_url_size_choice": "[\"max_url_size_exceeds\",\"max_url_size_none\"]",
        "x-ves-proto-message": "ves.io.schema.policy.RequestConstraintType",
        "properties": {
          "max_cookie_count_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_cookie_count_none]",
            "title": "max_cookie_count_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Count for all Cookies that exceed this value.",
            "x-ves-example": "40",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-example": "40",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 1024,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_cookie_count_none"
            ]
          },
          "max_cookie_count_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max cookie count none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_cookie_count_exceeds"
            ]
          },
          "max_cookie_key_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_cookie_key_size_none]",
            "title": "max_cookie_key_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Name Size per Cookie that exceed this value.",
            "x-ves-example": "64",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-example": "64",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-description-short": "Exclusive with [max_cookie_key_size_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 1024,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_cookie_key_size_none"
            ]
          },
          "max_cookie_key_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max cookie key size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_cookie_key_size_exceeds"
            ]
          },
          "max_cookie_value_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_cookie_value_size_none]",
            "title": "max_cookie_value_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Value Size per Cookie that exceed this value.",
            "x-ves-example": "4096",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-example": "4096",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "32768"
            },
            "x-f5xc-description-short": "Exclusive with [max_cookie_value_size_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 32768,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_cookie_value_size_none"
            ]
          },
          "max_cookie_value_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max cookie value size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_cookie_value_size_exceeds"
            ]
          },
          "max_header_count_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_header_count_none]",
            "title": "max_header_count_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Count for all Headers that exceed this value.",
            "x-ves-example": "20",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "40"
            },
            "x-f5xc-example": "20",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "40"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 40,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_header_count_none"
            ]
          },
          "max_header_count_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max header count none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_header_count_exceeds"
            ]
          },
          "max_header_key_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_header_key_size_none]",
            "title": "max_header_key_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Name Size per Header that exceed this value.",
            "x-ves-example": "32",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-example": "32",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-description-short": "Exclusive with [max_header_key_size_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 1024,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_header_key_size_none"
            ]
          },
          "max_header_key_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max header key size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_header_key_size_exceeds"
            ]
          },
          "max_header_value_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_header_value_size_none]",
            "title": "max_header_value_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Value Size per Header that exceed this value.",
            "x-ves-example": "1024",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "64000"
            },
            "x-f5xc-example": "1024",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "64000"
            },
            "x-f5xc-description-short": "Exclusive with [max_header_value_size_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 64000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_header_value_size_none"
            ]
          },
          "max_header_value_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max header value size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_header_value_size_exceeds"
            ]
          },
          "max_parameter_count_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_parameter_count_none]",
            "title": "max_parameter_count_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Parameter Count that exceed this value.",
            "x-ves-example": "4",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-example": "4",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-description-short": "Exclusive with [max_parameter_count_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 1024,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_parameter_count_none"
            ]
          },
          "max_parameter_count_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max parameter count none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_parameter_count_exceeds"
            ]
          },
          "max_parameter_name_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_parameter_name_size_none]",
            "title": "max_parameter_name_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Parameter Name Size that exceed this value.",
            "x-ves-example": "64",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-example": "64",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1024"
            },
            "x-f5xc-description-short": "Exclusive with [max_parameter_name_size_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 1024,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_parameter_name_size_none"
            ]
          },
          "max_parameter_name_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_parameter_name_size_exceeds"
            ]
          },
          "max_parameter_value_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_parameter_value_size_none]",
            "title": "max_parameter_value_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Parameter Value Size that exceed this value.",
            "x-ves-example": "1000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1073741824"
            },
            "x-f5xc-example": "1000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "1073741824"
            },
            "x-f5xc-description-short": "Exclusive with [max_parameter_value_size_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 1073741824,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_parameter_value_size_none"
            ]
          },
          "max_parameter_value_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max parameter value size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_parameter_value_size_exceeds"
            ]
          },
          "max_query_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_query_size_none]",
            "title": "max_query_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the URL Query Size that exceed this value.",
            "x-ves-example": "4096",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "60000"
            },
            "x-f5xc-example": "4096",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "60000"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 60000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_query_size_none"
            ]
          },
          "max_query_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max query size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_query_size_exceeds"
            ]
          },
          "max_request_line_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_request_line_size_none]",
            "title": "max_query_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Request Line Size that exceed this value.",
            "x-ves-example": "4096",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65536"
            },
            "x-f5xc-example": "4096",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65536"
            },
            "x-f5xc-description-short": "Exclusive with [max_request_line_size_none].",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65536,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_request_line_size_none"
            ]
          },
          "max_request_line_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max request line size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_request_line_size_exceeds"
            ]
          },
          "max_request_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_request_size_none]",
            "title": "max_request_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the Request Size that exceed this value.",
            "x-ves-example": "32768",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65536"
            },
            "x-f5xc-example": "32768",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "65536"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 65536,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_request_size_none"
            ]
          },
          "max_request_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for max request size none.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_request_size_exceeds"
            ]
          },
          "max_url_size_exceeds": {
            "type": "integer",
            "description": "Exclusive with [max_url_size_none]",
            "title": "max_url_size_exceeds",
            "format": "int64",
            "x-displayname": "Match on the URL Size that exceed this value.",
            "x-ves-example": "4096",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "128000"
            },
            "x-f5xc-example": "4096",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1",
              "ves.io.schema.rules.uint32.lte": "128000"
            },
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "maximum": 128000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_url_size_none"
            ]
          },
          "max_url_size_none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_url_size_exceeds"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyRequestConstraintType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyRuleAction": {
        "type": "string",
        "description": "The rule action determines the disposition of the input request API. If a policy matches a rule with an ALLOW action, the processing of the request proceeds\nforward. If it matches a rule with a DENY action, the processing of the request is terminated and an appropriate message/code returned to the originator. If\nit matches a rule with a NEXT_POLICY_SET action, evaluation of the current policy set terminates and evaluation of the next policy set in the chain begins.\n\n- DENY: DENY\n\nDeny the request.\n- ALLOW: ALLOW\n\nAllow the request to proceed.\n- NEXT_POLICY_SET: NEXT_POLICY_SET\n\nTerminate evaluation of the current policy set and begin evaluating the next policy set in the chain. Note that the evaluation of any remaining policies\nin the current policy set is skipped.\n- NEXT_POLICY: NEXT_POLICY\n\nTerminate evaluation of the current policy and begin evaluating the next policy in the policy set. Note that the evaluation of any remaining rules in the\ncurrent policy is skipped.\n- LAST_POLICY: LAST_POLICY\n\nTerminate evaluation of the current policy and begin evaluating the last policy in the policy set. Note that the evaluation of any remaining rules in the\ncurrent policy is skipped.\n- GOTO_POLICY: GOTO_POLICY\n\nTerminate evaluation of the current policy and begin evaluating a specific policy in the policy set. The policy is specified using the goto_policy field in\nthe rule and must be after the current policy in the policy set.",
        "title": "Rule Action",
        "enum": [
          "DENY",
          "ALLOW",
          "NEXT_POLICY"
        ],
        "default": "DENY",
        "x-displayname": "Rule Action.",
        "x-ves-proto-enum": "ves.io.schema.policy.RuleAction",
        "x-f5xc-description-short": "The rule action determines the disposition of the input request API.",
        "x-f5xc-description-medium": "The rule action determines the disposition of the input request API. If a policy matches a rule with an ALLOW action, the processing of the request proceeds forward. If it matches a rule with a DENY action, the processing of the request is terminated and an appropriate message/code returned to...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyRuleAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"DENY\"",
          "example_yaml": "DENY\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyStringMatcherType": {
        "type": "object",
        "description": "A matcher specifies a list of values for matching an input string. The match is considered successful if the input value is present in the list. The result of\nthe match is inverted if invert_matcher is true.",
        "title": "StringMatcherType",
        "x-displayname": "String Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.StringMatcherType",
        "properties": {
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert String Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "match": {
            "type": "array",
            "description": "A list of exact values to match the input against.",
            "title": "match",
            "maxItems": 64,
            "items": {
              "type": "string",
              "maxLength": 63
            },
            "x-displayname": "Exact Values.",
            "x-ves-example": "['new york', 'london', 'sydney', 'tokyo', 'cairo']",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "63",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "['new york', 'london', 'sydney', 'tokyo', 'cairo']",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.max_bytes": "63",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact values to match the input against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Matcher specifies a list of values for matching an input string. The match is considered successful if the input value is present in the list.",
        "x-f5xc-description-medium": "Matcher specifies a list of values for matching an input string. The match is considered successful if the input value is present in the list. The result of the match is inverted if invert_matcher is true.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyStringMatcherType",
          "required_fields": [
            "match"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"match\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "match:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "policyWafAction": {
        "type": "object",
        "description": "Modify App Firewall behavior for a matching request. The modification could either be to entirely skip firewall processing or to customize the firewall rules\nto be applied as defined by App Firewall Rule Control settings.",
        "title": "App Firewall Action",
        "x-displayname": "App Firewall Action.",
        "x-ves-oneof-field-action_type": "[\"app_firewall_detection_control\",\"none\",\"waf_skip_processing\"]",
        "x-ves-proto-message": "ves.io.schema.policy.WafAction",
        "properties": {
          "app_firewall_detection_control": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAppFirewallDetectionControl"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall detection control.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "none",
              "waf_skip_processing"
            ]
          },
          "none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall_detection_control",
              "waf_skip_processing"
            ]
          },
          "waf_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall_detection_control",
              "none"
            ]
          }
        },
        "x-f5xc-description-short": "Modify App Firewall behavior for a matching request.",
        "x-f5xc-description-medium": "Modify App Firewall behavior for a matching request. The modification could either be to entirely skip firewall processing or to customize the firewall rules to be applied as defined by App Firewall Rule Control settings.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for policyWafAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyBotAction": {
        "type": "object",
        "description": "Modify Bot protection behavior for a matching request. The modification could be to entirely skip Bot processing.",
        "title": "Bot Action",
        "x-displayname": "Bot Action.",
        "x-ves-oneof-field-action_type": "[\"bot_skip_processing\",\"none\"]",
        "x-ves-proto-message": "ves.io.schema.policy.BotAction",
        "properties": {
          "bot_skip_processing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "none"
            ]
          },
          "none": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "bot_skip_processing"
            ]
          }
        },
        "x-f5xc-description-short": "Modify Bot protection behavior for a matching request. The modification could be to entirely skip Bot processing.",
        "x-f5xc-description-medium": "Modify Bot protection behavior for a matching request. The modification could be to entirely skip Bot processing.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyBotAction",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemapolicyPortMatcherType": {
        "type": "object",
        "description": "A port matcher specifies a list of port ranges as match criteria. The match is considered successful if the input port falls within any of the port ranges.\nThe result of the match is inverted if invert_matcher is true.",
        "title": "port matcher type",
        "x-displayname": "Port Matcher.",
        "x-ves-proto-message": "ves.io.schema.policy.PortMatcherType",
        "properties": {
          "invert_matcher": {
            "type": "boolean",
            "description": "Invert the match result.",
            "title": "invert_matcher",
            "format": "boolean",
            "x-displayname": "Invert Port Matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ports": {
            "type": "array",
            "description": "A list of strings, each of which is a single port value or a tuple of start and end port values separated by \"-\". The start and end values are considered\nto be part of the range.",
            "title": "port ranges",
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "Port Ranges.",
            "x-ves-example": "8000-8191",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.port_range": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "8000-8191",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.items.string.port_range": "true",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of strings, each of which is a single port value or a tuple of start and end port values separated by \"-\".",
            "x-f5xc-description-medium": "List of strings, each of which is a single port value or a tuple of start and end port values separated by \"-\". The start and end values are considered to be part of the range.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Port matcher specifies a list of port ranges as match criteria.",
        "x-f5xc-description-medium": "Port matcher specifies a list of port ranges as match criteria. The match is considered successful if the input port falls within any of the port ranges. The result of the match is inverted if invert_matcher is true.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemapolicyPortMatcherType",
          "required_fields": [
            "ports"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"ports\": [\n    \"value\"\n  ]\n}",
          "example_yaml": "ports:\n- value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaservice_policyCreateSpecType": {
        "type": "object",
        "description": "Create service_policy creates a new object in the storage backend for metadata.namespace.",
        "title": "Create service policy",
        "x-displayname": "Create Service Policy.",
        "x-ves-oneof-field-rule_choice": "[\"allow_all_requests\",\"allow_list\",\"deny_all_requests\",\"deny_list\",\"rule_list\"]",
        "x-ves-oneof-field-server_choice": "[\"any_server\",\"server_name\",\"server_name_matcher\",\"server_selector\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy.CreateSpecType",
        "properties": {
          "allow_all_requests": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow all requests.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_list",
              "deny_all_requests",
              "deny_list",
              "rule_list"
            ]
          },
          "allow_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policySourceList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "deny_all_requests",
              "deny_list",
              "rule_list"
            ]
          },
          "any_server": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "server_name",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "deny_all_requests": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for deny all requests.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_list",
              "rule_list"
            ]
          },
          "deny_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policySourceList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_all_requests",
              "rule_list"
            ]
          },
          "rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policyRuleList"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Ordered service-policy rules for non-geographic predicates and actions.",
            "x-f5xc-description-medium": "Ordered service-policy rules for non-geographic predicates and actions. Do not use country_list for a geo-only rule here: the platform adds match-all any_ip and any_asn selectors on readback, so the rule can match all traffic. Use deny_list or allow_list with country_list for geographic source...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Ordered service-policy rules for non-geographic predicates and actions. Do not use country_list for a geo-only rule here: the platform adds match-all any_ip and any_asn selectors on readback, so the rule can match all traffic. Use deny_list or allow_list with country_list for geographic source matching.",
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_all_requests",
              "deny_list"
            ]
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [any_server server_name_matcher server_selector]\nThe expected name of the server to which the request API is directed. The actual names for the server are extracted from the HTTP Host header and the name\nof the virtual_host to which the request is directed. If the request is directed to a virtual K8s service, the actual names also contain the name of that\nservice.\nThe predicate evaluates to true if any of the actual names is the same as the expected server name.",
            "maxLength": 256,
            "x-displayname": "Server Name.",
            "x-ves-example": "database.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "database.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server to which the request API is directed.",
            "x-f5xc-description-medium": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server to which the request API is directed. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host to which the request is directed. If the request is...",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "server_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_selector"
            ]
          },
          "server_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for server selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_name_matcher"
            ]
          }
        },
        "x-f5xc-description-short": "Create service_policy creates a new object in the storage backend for metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policyCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaservice_policyGetSpecType": {
        "type": "object",
        "description": "GET service_policy reads a given object from storage backend for metadata.namespace.",
        "title": "Get service policy",
        "x-displayname": "GET Service Policy.",
        "x-ves-oneof-field-rule_choice": "[\"allow_all_requests\",\"allow_list\",\"deny_all_requests\",\"deny_list\",\"rule_list\"]",
        "x-ves-oneof-field-server_choice": "[\"any_server\",\"server_name\",\"server_name_matcher\",\"server_selector\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy.GetSpecType",
        "properties": {
          "allow_all_requests": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow all requests.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_list",
              "deny_all_requests",
              "deny_list",
              "rule_list"
            ]
          },
          "allow_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policySourceList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "deny_all_requests",
              "deny_list",
              "rule_list"
            ]
          },
          "any_server": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "server_name",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "deny_all_requests": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for deny all requests.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_list",
              "rule_list"
            ]
          },
          "deny_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policySourceList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_all_requests",
              "rule_list"
            ]
          },
          "rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policyRuleList"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Ordered service-policy rules for non-geographic predicates and actions.",
            "x-f5xc-description-medium": "Ordered service-policy rules for non-geographic predicates and actions. Do not use country_list for a geo-only rule here: the platform adds match-all any_ip and any_asn selectors on readback, so the rule can match all traffic. Use deny_list or allow_list with country_list for geographic source...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Ordered service-policy rules for non-geographic predicates and actions. Do not use country_list for a geo-only rule here: the platform adds match-all any_ip and any_asn selectors on readback, so the rule can match all traffic. Use deny_list or allow_list with country_list for geographic source matching.",
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_all_requests",
              "deny_list"
            ]
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [any_server server_name_matcher server_selector]\nThe expected name of the server to which the request API is directed. The actual names for the server are extracted from the HTTP Host header and the name\nof the virtual_host to which the request is directed. If the request is directed to a virtual K8s service, the actual names also contain the name of that\nservice.\nThe predicate evaluates to true if any of the actual names is the same as the expected server name.",
            "maxLength": 256,
            "x-displayname": "Server Name.",
            "x-ves-example": "database.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "database.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server to which the request API is directed.",
            "x-f5xc-description-medium": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server to which the request API is directed. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host to which the request is directed. If the request is...",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "server_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_selector"
            ]
          },
          "server_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for server selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_name_matcher"
            ]
          }
        },
        "x-f5xc-description-short": "GET service_policy reads a given object from storage backend for metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policyGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaservice_policyReplaceSpecType": {
        "type": "object",
        "description": "Replace service_policy replaces an existing object in the storage backend for metadata.namespace.",
        "title": "Replace service policy",
        "x-displayname": "Replace Service Policy.",
        "x-ves-oneof-field-rule_choice": "[\"allow_all_requests\",\"allow_list\",\"deny_all_requests\",\"deny_list\",\"rule_list\"]",
        "x-ves-oneof-field-server_choice": "[\"any_server\",\"server_name\",\"server_name_matcher\",\"server_selector\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy.ReplaceSpecType",
        "properties": {
          "allow_all_requests": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for allow all requests.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_list",
              "deny_all_requests",
              "deny_list",
              "rule_list"
            ]
          },
          "allow_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policySourceList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "deny_all_requests",
              "deny_list",
              "rule_list"
            ]
          },
          "any_server": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": {},
            "x-f5xc-server-default": true,
            "x-f5xc-conflicts-with": [
              "server_name",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "deny_all_requests": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for deny all requests.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_list",
              "rule_list"
            ]
          },
          "deny_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policySourceList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_all_requests",
              "rule_list"
            ]
          },
          "rule_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policyRuleList"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Ordered service-policy rules for non-geographic predicates and actions.",
            "x-f5xc-description-medium": "Ordered service-policy rules for non-geographic predicates and actions. Do not use country_list for a geo-only rule here: the platform adds match-all any_ip and any_asn selectors on readback, so the rule can match all traffic. Use deny_list or allow_list with country_list for geographic source...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "description": "Ordered service-policy rules for non-geographic predicates and actions. Do not use country_list for a geo-only rule here: the platform adds match-all any_ip and any_asn selectors on readback, so the rule can match all traffic. Use deny_list or allow_list with country_list for geographic source matching.",
            "x-f5xc-conflicts-with": [
              "allow_all_requests",
              "allow_list",
              "deny_all_requests",
              "deny_list"
            ]
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [any_server server_name_matcher server_selector]\nThe expected name of the server to which the request API is directed. The actual names for the server are extracted from the HTTP Host header and the name\nof the virtual_host to which the request is directed. If the request is directed to a virtual K8s service, the actual names also contain the name of that\nservice.\nThe predicate evaluates to true if any of the actual names is the same as the expected server name.",
            "maxLength": 256,
            "x-displayname": "Server Name.",
            "x-ves-example": "database.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "database.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server to which the request API is directed.",
            "x-f5xc-description-medium": "Exclusive with [any_server server_name_matcher server_selector] The expected name of the server to which the request API is directed. The actual names for the server are extracted from the HTTP Host header and the name of the virtual_host to which the request is directed. If the request is...",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name_matcher",
              "server_selector"
            ]
          },
          "server_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_selector"
            ]
          },
          "server_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for server selector.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_server",
              "server_name",
              "server_name_matcher"
            ]
          }
        },
        "x-f5xc-description-short": "Replace service_policy replaces an existing object in the storage backend for metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policyReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaservice_policy_ruleGlobalSpecType": {
        "type": "object",
        "description": "Shape of service_policy_rule in the storage backend.",
        "title": "GlobalSpecType",
        "x-displayname": "Specification.",
        "x-ves-oneof-field-asn_choice": "[\"any_asn\",\"asn_list\",\"asn_matcher\"]",
        "x-ves-oneof-field-client_choice": "[\"any_client\",\"client_name\",\"client_name_matcher\",\"client_selector\",\"ip_threat_category_list\"]",
        "x-ves-oneof-field-dst_asn_choice": "[]",
        "x-ves-oneof-field-dst_ip_choice": "[]",
        "x-ves-oneof-field-ip_choice": "[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-oneof-field-tls_fingerprint_choice": "[\"ja4_tls_fingerprint\",\"tls_fingerprint_matcher\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.GlobalSpecType",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRuleAction"
              }
            ],
            "x-ves-required": "true",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-f5xc-constraints": {
              "source": "minimum_configs",
              "constraintType": "enum",
              "enumValues": [
                "ALLOW",
                "DENY",
                "NEXT_POLICY"
              ],
              "description": "Rule action"
            }
          },
          "any_asn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher"
            ]
          },
          "any_client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_name",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "api_group_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyStringMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "arg_matchers": {
            "type": "array",
            "description": "A list of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances\nof ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.\nNote that all specified arg matcher predicates must evaluate to true.",
            "title": "arg matchers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyArgMatcherType"
            },
            "x-displayname": "Argument Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all POST args that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances of ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_matcher"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_list"
            ]
          },
          "body_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyBotAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "client_name": {
            "type": "string",
            "description": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list]\nThe expected name of the client invoking the request API.\nThe predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "title": "client name",
            "maxLength": 256,
            "x-displayname": "Client Name.",
            "x-ves-example": "backend.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "backend.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API.",
            "x-f5xc-description-medium": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API. The predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "ip_threat_category_list"
            ]
          },
          "cookie_matchers": {
            "type": "array",
            "description": "A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.",
            "title": "cookie matchers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyCookieMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Cookie Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all cookies that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domain_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for domain matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "title": "expiration timestamp",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "title": "headers",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_matcher"
            ]
          },
          "ip_threat_category_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleIPThreatCategoryListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "client_selector"
            ]
          },
          "ja4_tls_fingerprint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyJA4TlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ja4 tls fingerprint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_fingerprint_matcher"
            ]
          },
          "jwt_claims": {
            "type": "array",
            "description": "A list of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType\ninstances. The actual JWT claims values are extracted from the JWT payload as a list of strings.\nNote that all specified JWT claim predicates must evaluate to true.",
            "title": "JWT claims",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyJWTClaimMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "JWT Claims.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for various JWT claims that need to match.",
            "x-f5xc-description-medium": "List of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType instances. The actual JWT claims values are extracted from the JWT payload as a list of strings.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "log_rule_evaluation": {
            "type": "boolean",
            "description": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "title": "Log Rule Evaluation",
            "format": "boolean",
            "x-displayname": "Log Rule Evaluation.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mum_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyModifyAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPortMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": null,
            "x-f5xc-server-default": true
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "title": "query params",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Query Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_constraints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestConstraintType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request constraints.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "segment_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policySegmentPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ja4_tls_fingerprint"
            ]
          },
          "user_identity_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for user identity matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "waf_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyWafAction"
              }
            ],
            "x-ves-required": "true",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of service_policy_rule in the storage backend.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policy_ruleGlobalSpecType",
          "required_fields": [
            "action",
            "waf_action"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"action\": \"DENY\",\n  \"waf_action\": {}\n}",
          "example_yaml": "action: DENY\nwaf_action: {}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaservice_policy_ruleIPThreatCategoryListType": {
        "type": "object",
        "description": "List of IP threat categories.",
        "title": "IP Threat Category List Type",
        "x-displayname": "IP Threat Category List Type.",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.IPThreatCategoryListType",
        "properties": {
          "ip_threat_categories": {
            "type": "array",
            "description": "The IP threat categories is obtained from the list and is used to auto-generate equivalent label selection expressions.",
            "title": "IP Threat Categories",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/policyIPThreatCategory"
            },
            "x-displayname": "List of IP Threat Categories to choose.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The IP threat categories is obtained from the list and is used to auto-generate equivalent label selection expressions.",
            "x-f5xc-description-medium": "The IP threat categories is obtained from the list and is used to auto-generate equivalent label selection expressions.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policy_ruleIPThreatCategoryListType",
          "required_fields": [
            "ip_threat_categories"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"ip_threat_categories\": [\n    \"SPAM_SOURCES\"\n  ]\n}",
          "example_yaml": "ip_threat_categories:\n- SPAM_SOURCES"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policyCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of service_policy",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.service_policy.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policyCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Service policy for network-level access control and traffic rules",
          "required_fields": [
            "metadata.name",
            "metadata.namespace"
          ],
          "mutually_exclusive_groups": [
            {
              "name": "rule_choice",
              "fields": [
                "spec.allow_all_requests",
                "spec.deny_all_requests",
                "spec.rule_list"
              ],
              "reason": "Choose exactly one rule selection method (REQUIRED)"
            },
            {
              "name": "server_choice",
              "fields": [
                "spec.any_server",
                "spec.server_name",
                "spec.server_selector",
                "spec.server_name_matcher"
              ],
              "reason": "Choose server scope (default: any_server)"
            }
          ],
          "example_yaml": "apiVersion: v1\nkind: service_policy\nmetadata:\n  name: allow-all\n  namespace: default\nspec:\n  allow_all_requests: {}\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"allow-all\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"allow_all_requests\": {}\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.service_policy.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a service_policy",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.service_policy.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read service_policy",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.service_policy.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policyCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policyReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/service_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyLegacyRuleList": {
        "type": "object",
        "description": "A list of references to service_policy_rule objects.\nThe order of evaluation of the rules depends on the rule combining algorithm.",
        "title": "LegacyRuleList",
        "x-displayname": "Legacy Rules.",
        "x-ves-proto-message": "ves.io.schema.service_policy.LegacyRuleList",
        "properties": {
          "rules": {
            "type": "array",
            "description": "A list of references to service_policy_rule objects.\nThe order of evaluation of the rules depends on the rule combining algorithm.",
            "title": "rules",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Rules",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of references to service_policy_rule objects. The order of evaluation of the rules depends on the rule combining algorithm.",
            "x-f5xc-description-medium": "List of references to service_policy_rule objects. The order of evaluation of the rules depends on the rule combining algorithm.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of references to service_policy_rule objects. The order of evaluation of the rules depends on the rule combining algorithm.",
        "x-f5xc-description-medium": "List of references to service_policy_rule objects. The order of evaluation of the rules depends on the rule combining algorithm.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyLegacyRuleList",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of service_policy",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.service_policy.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/service_policyListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyListResponseItem": {
        "type": "object",
        "description": "By default a summary of service_policy is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of service_policy",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.service_policy.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this service_policy.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this service_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this service_policy.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this service_policy.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates service_policy is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates service_policy is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policyGetSpecType"
              }
            ],
            "description": "Desired state specification",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this service_policy.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this service_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "description": "Metadata associated with the resource",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this service_policy.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "description": "Owner or responsible party",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/service_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "description": "Data or content configuration",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this service_policy.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of service_policy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of service_policy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a service_policy",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.service_policy.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policyReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Service policy for network-level access control and traffic rules",
          "required_fields": [],
          "mutually_exclusive_groups": [
            {
              "name": "rule_choice",
              "fields": [
                "spec.allow_all_requests",
                "spec.deny_all_requests",
                "spec.rule_list"
              ],
              "reason": "Choose exactly one rule selection method (REQUIRED)"
            },
            {
              "name": "server_choice",
              "fields": [
                "spec.any_server",
                "spec.server_name",
                "spec.server_selector",
                "spec.server_name_matcher"
              ],
              "reason": "Choose server scope (default: any_server)"
            }
          ],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.service_policy.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyRule": {
        "type": "object",
        "description": "A Rule consists of an unordered list of predicates and an action. The predicates are evaluated against a set of input fields that are extracted from\nor derived from an L7 request API. A request API is considered to match the simple rule if all predicates in the rule evaluate to true for that request. Any\npredicates that are not specified in a rule are implicitly considered to be true. If a request API matches a simple rule, the action for the simple rule is\nenforced.",
        "title": "rule",
        "x-displayname": "Rule",
        "x-ves-proto-message": "ves.io.schema.service_policy.Rule",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMessageMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleGlobalSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Rule consists of an unordered list of predicates and an action.",
        "x-f5xc-description-medium": "Rule consists of an unordered list of predicates and an action. The predicates are evaluated against a set of input fields that are extracted from or derived from an L7 request API. A request API is considered to match the simple rule if all predicates in the rule evaluate to true for that request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyRule",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policyRuleList": {
        "type": "object",
        "description": "A list of rules.\nThe order of evaluation of the rules depends on the rule combining algorithm.",
        "title": "rule list",
        "x-displayname": "Rule List",
        "x-ves-proto-message": "ves.io.schema.service_policy.RuleList",
        "properties": {
          "rules": {
            "type": "array",
            "description": "Define the list of rules (with an order) that should be evaluated by this service policy.\nRules are evaluated from top to bottom in the list.",
            "title": "rules",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/service_policyRule"
            },
            "x-displayname": "Rules",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Define the list of rules (with an order) that should be evaluated by this service policy.",
            "x-f5xc-description-medium": "Define the list of rules (with an order) that should be evaluated by this service policy. Rules are evaluated from top to bottom in the list.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of rules. The order of evaluation of the rules depends on the rule combining algorithm.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyRuleList",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policyServicePolicyHits": {
        "type": "object",
        "description": "ServicePolicyHits contains the timeseries data of Service policy hits.",
        "title": "Service Policy Hits",
        "x-displayname": "Service Policy Hits.",
        "x-ves-proto-message": "ves.io.schema.service_policy.ServicePolicyHits",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policyServicePolicyHitsId"
              }
            ],
            "x-f5xc-example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metric": {
            "type": "array",
            "description": "X-unit: \"count\"\nList of metric values.",
            "title": "Metric",
            "items": {
              "$ref": "#/components/schemas/schemaMetricValue"
            },
            "x-displayname": "Metric",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "ServicePolicyHits contains the timeseries data of Service policy hits.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyServicePolicyHits",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyServicePolicyHitsId": {
        "type": "object",
        "description": "ServicePolicyHitsId uniquely identifies an entry in the response to Service policy hits request.\nService policy hits counter is aggregated based on the labels specified in the group_by field in the request.\nTherefore, only the feields that corresponds to the MetricLabel in the group_by field will have non-empty\nvalue in the response.",
        "title": "Service Policy Hits ID",
        "x-displayname": "Service Policy Hits ID.",
        "x-ves-proto-message": "ves.io.schema.service_policy.ServicePolicyHitsId",
        "properties": {
          "action": {
            "type": "string",
            "description": "Action associated with the policy rule.",
            "title": "Action",
            "x-displayname": "Action",
            "x-ves-example": "Allow",
            "x-f5xc-example": "allow",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the policy rule was hit.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the policy rule was hit.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "policy": {
            "type": "string",
            "description": "Policy name.",
            "title": "Policy",
            "x-displayname": "Policy",
            "x-ves-example": "Policy1",
            "x-f5xc-example": "policy1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "policy_rule": {
            "type": "string",
            "description": "Policy Rule name.",
            "title": "Policy Rule",
            "x-displayname": "Policy Rule.",
            "x-ves-example": "Rule1",
            "x-f5xc-example": "rule1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "policy_set": {
            "type": "string",
            "description": "Policy Set name.",
            "title": "Policy Set",
            "x-displayname": "Policy Set.",
            "x-ves-example": "Policy-set1.",
            "x-f5xc-example": "policy-set1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site": {
            "type": "string",
            "description": "Site name",
            "title": "Site",
            "x-displayname": "Site",
            "x-ves-example": "Ce1",
            "x-f5xc-example": "ce1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_host": {
            "type": "string",
            "description": "Virtual Host name.",
            "title": "Virtual Host",
            "x-displayname": "Virtual Host.",
            "x-ves-example": "Productpage.",
            "x-f5xc-example": "productpage",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "ServicePolicyHitsId uniquely identifies an entry in the response to Service policy hits request.",
        "x-f5xc-description-medium": "ServicePolicyHitsId uniquely identifies an entry in the response to Service policy hits request. Service policy hits counter is aggregated based on the labels specified in the group_by field in the request. Therefore, only the feields that corresponds to the MetricLabel in the group_by field...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyServicePolicyHitsId",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyServicePolicyHitsRequest": {
        "type": "object",
        "description": "Request to GET the Service policy hits counter.",
        "title": "Service Policy Hits Request",
        "x-displayname": "Service Policy Hits Request.",
        "x-ves-proto-message": "ves.io.schema.service_policy.ServicePolicyHitsRequest",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "End time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "End time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "End time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "group_by": {
            "type": "array",
            "description": "Aggregate data by one of more labels specified in `group_by`.\n\nOptional: If not specified, then the rule hits are aggregated/grouped by `POLICY`.",
            "title": "Group by",
            "items": {
              "$ref": "#/components/schemas/service_policyServicePolicyMetricLabel"
            },
            "x-displayname": "Group By",
            "x-f5xc-description-short": "Aggregate data by one of more labels specified in . Optional: If not specified, then the rule hits are aggregated/grouped by .",
            "x-f5xc-description-medium": "Aggregate data by one of more labels specified in . Optional: If not specified, then the rule hits are aggregated/grouped by .",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_filter": {
            "type": "array",
            "description": "List of label filter expressions of the form \"label\" `Op` \"value\".\nResponse will only contain data that matches all the conditions specified in the `label_filter`.\n\nOptional: If not specified, then the metrics will be filtered only based on the `namespace` in the request.",
            "title": "Label Filter",
            "items": {
              "$ref": "#/components/schemas/service_policyServicePolicyMetricLabelFilter"
            },
            "x-displayname": "Label Filter.",
            "x-f5xc-description-short": "List of label filter expressions of the form \"label\" \"value\". Response will only contain data that matches all the conditions specified in the .",
            "x-f5xc-description-medium": "List of label filter expressions of the form \"label\" \"value\". Response will only contain data that matches all the conditions specified in the . Optional: If not specified, then the metrics will be filtered only based on the in the request.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace is used to scope Service policy hits for the given namespace.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace is used to scope Service policy hits for the given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "start_time": {
            "type": "string",
            "description": "Start time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "Start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Start time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "Start time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.\nThe timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nOptional: If not specified, then step size is evaluated to <end_time - start_time>",
            "title": "Step",
            "x-displayname": "Step",
            "x-ves-example": "5m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-example": "5m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-description-short": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.",
            "x-f5xc-description-medium": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response. The timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET the Service policy hits counter.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyServicePolicyHitsRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyServicePolicyHitsResponse": {
        "type": "object",
        "description": "Number of Service policy rule hits for each unique combination of group_by labels in the request.",
        "title": "Service Policy Hits Response",
        "x-displayname": "Service Policy Hits Response.",
        "x-ves-proto-message": "ves.io.schema.service_policy.ServicePolicyHitsResponse",
        "properties": {
          "data": {
            "type": "array",
            "description": "List of Service policy hits data.",
            "title": "Service policy Hits",
            "items": {
              "$ref": "#/components/schemas/service_policyServicePolicyHits"
            },
            "x-displayname": "Service Policy Hits.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "title": "step",
            "x-displayname": "Step",
            "x-ves-example": "30m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "30m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.",
            "x-f5xc-description-medium": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Number of Service policy rule hits for each unique combination of group_by labels in the request.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyServicePolicyHitsResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyServicePolicyMetricLabel": {
        "type": "string",
        "description": "Service policy hits can be sliced and diced based on one or more labels listed below.",
        "title": "Service Policy Metric Labels",
        "enum": [
          "NAMESPACE",
          "POLICY",
          "POLICY_RULE",
          "ACTION",
          "SITE",
          "VIRTUAL_HOST",
          "POLICY_SET"
        ],
        "default": "NAMESPACE",
        "x-displayname": "Service Policy Metric Labels.",
        "x-ves-proto-enum": "ves.io.schema.service_policy.ServicePolicyMetricLabel",
        "x-f5xc-description-short": "Service policy hits can be sliced and diced based on one or more labels listed below.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyServicePolicyMetricLabel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"NAMESPACE\"",
          "example_yaml": "NAMESPACE\n..."
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyServicePolicyMetricLabelFilter": {
        "type": "object",
        "description": "Label filter can be specified to filter metrics based on label match.",
        "title": "Service Policy Metric Label Filter",
        "x-displayname": "Service Policy Metric Label Filter.",
        "x-ves-proto-message": "ves.io.schema.service_policy.ServicePolicyMetricLabelFilter",
        "properties": {
          "label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policyServicePolicyMetricLabel"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "op": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaMetricLabelOp"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Value to be compared with.",
            "title": "Value",
            "x-displayname": "Value",
            "x-ves-example": "Policy1",
            "x-f5xc-example": "policy1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Label filter can be specified to filter metrics based on label match.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyServicePolicyMetricLabelFilter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policySourceList": {
        "type": "object",
        "description": "List of sources. A request belongs to this list if it satisfies any of the match criteria.",
        "title": "source_list",
        "x-displayname": "Source List.",
        "x-ves-displayorder": "2,3,4,5,6,7,8,10",
        "x-ves-oneof-field-default_action_choice": "[\"default_action_allow\",\"default_action_deny\",\"default_action_next_policy\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy.SourceList",
        "properties": {
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "asn_set": {
            "type": "array",
            "description": "Addresses that belong to the ASNs in the given bgp_asn_set\nThe ASN is obtained by performing a lookup for the source IPv4 Address in a GeoIP DB.",
            "title": "asn_set",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "BGP ASN Set.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Addresses that belong to the ASNs in the given bgp_asn_set The ASN is obtained by performing a lookup for the source IPv4 Address in a GeoIP DB.",
            "x-f5xc-description-medium": "Addresses that belong to the ASNs in the given bgp_asn_set The ASN is obtained by performing a lookup for the source IPv4 Address in a GeoIP DB.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "country_list": {
            "type": "array",
            "description": "Addresses that belong to one of the countries in the given list\nThe country is obtained by performing a lookup for the source IPv4 Address in a GeoIP DB.",
            "title": "country_list",
            "maxItems": 64,
            "items": {
              "$ref": "#/components/schemas/policyCountryCode"
            },
            "x-displayname": "Country List.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.max_items": "64",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Addresses that belong to one of the countries in the given list The country is obtained by performing a lookup for the source IPv4 Address in a...",
            "x-f5xc-description-medium": "Addresses that belong to one of the countries in the given list The country is obtained by performing a lookup for the source IPv4 Address in a GeoIP DB.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 64,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_action_allow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_action_deny",
              "default_action_next_policy"
            ]
          },
          "default_action_deny": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_action_allow",
              "default_action_next_policy"
            ]
          },
          "default_action_next_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_action_allow",
              "default_action_deny"
            ]
          },
          "ip_prefix_set": {
            "type": "array",
            "description": "Addresses that are covered by the prefixes in the given ip_prefix_set.",
            "title": "ip_prefix_set",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "IP Prefix Set.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Addresses that are covered by the prefixes in the given ip_prefix_set.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/viewsPrefixStringListType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_classes": {
            "type": "array",
            "description": "A list of known classes of TLS fingerprints to match the input TLS JA3 fingerprint against.",
            "title": "tls_fingerprint_classes",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyKnownTlsFingerprintClass"
            },
            "x-displayname": "TLS Fingerprint Classes.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of known classes of TLS fingerprints to match the input TLS JA3 fingerprint against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_values": {
            "type": "array",
            "description": "A list of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against.",
            "title": "tls_fingerprint_classes",
            "maxItems": 16,
            "items": {
              "type": "string"
            },
            "x-displayname": "TLS Fingerprint Values.",
            "x-ves-example": "1aa7bf8b97e540ca5edd75f7b8384bfa.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "1aa7bf8b97e540ca5edd75f7b8384bfa",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.len": "32",
              "ves.io.schema.rules.repeated.max_items": "16",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of exact TLS JA3 fingerprints to match the input TLS JA3 fingerprint against.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of sources. A request belongs to this list if it satisfies any of the match criteria.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policySourceList",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policyStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Status of service Policy",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.service_policy.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions reported by various component of the system.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions reported by various component of the system.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policyStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaservice_policy_ruleCreateSpecType": {
        "type": "object",
        "description": "Create service_policy_rule creates a new object in the storage backend for metadata.namespace.",
        "title": "Create service policy rule",
        "x-displayname": "Create Service Policy Rule.",
        "x-ves-oneof-field-asn_choice": "[\"any_asn\",\"asn_list\",\"asn_matcher\"]",
        "x-ves-oneof-field-client_choice": "[\"any_client\",\"client_name\",\"client_name_matcher\",\"client_selector\",\"ip_threat_category_list\"]",
        "x-ves-oneof-field-dst_asn_choice": "[]",
        "x-ves-oneof-field-dst_ip_choice": "[]",
        "x-ves-oneof-field-ip_choice": "[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-oneof-field-tls_fingerprint_choice": "[\"ja4_tls_fingerprint\",\"tls_fingerprint_matcher\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.CreateSpecType",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRuleAction"
              }
            ],
            "x-ves-required": "true",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "any_asn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher"
            ]
          },
          "any_client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_name",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "api_group_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyStringMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "arg_matchers": {
            "type": "array",
            "description": "A list of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances\nof ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.\nNote that all specified arg matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyArgMatcherType"
            },
            "x-displayname": "Argument Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all POST args that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances of ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_matcher"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_list"
            ]
          },
          "body_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyBotAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "client_name": {
            "type": "string",
            "description": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list]\nThe expected name of the client invoking the request API.\nThe predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "maxLength": 256,
            "x-displayname": "Client Name.",
            "x-ves-example": "backend.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "backend.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API.",
            "x-f5xc-description-medium": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API. The predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "ip_threat_category_list"
            ]
          },
          "cookie_matchers": {
            "type": "array",
            "description": "A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyCookieMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Cookie Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all cookies that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domain_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for domain matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_matcher"
            ]
          },
          "ip_threat_category_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleIPThreatCategoryListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "client_selector"
            ]
          },
          "ja4_tls_fingerprint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyJA4TlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ja4 tls fingerprint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_fingerprint_matcher"
            ]
          },
          "jwt_claims": {
            "type": "array",
            "description": "A list of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType\ninstances. The actual JWT claims values are extracted from the JWT payload as a list of strings.\nNote that all specified JWT claim predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyJWTClaimMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "JWT Claims.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for various JWT claims that need to match.",
            "x-f5xc-description-medium": "List of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType instances. The actual JWT claims values are extracted from the JWT payload as a list of strings.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "log_rule_evaluation": {
            "type": "boolean",
            "description": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "format": "boolean",
            "x-displayname": "Log Rule Evaluation.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mum_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyModifyAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPortMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": null,
            "x-f5xc-server-default": true
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Query Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_constraints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestConstraintType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request constraints.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "segment_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policySegmentPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ja4_tls_fingerprint"
            ]
          },
          "waf_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyWafAction"
              }
            ],
            "x-ves-required": "true",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Create service_policy_rule creates a new object in the storage backend for metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policy_ruleCreateSpecType",
          "required_fields": [
            "action",
            "waf_action"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"action\": \"DENY\",\n  \"waf_action\": {}\n}",
          "example_yaml": "action: DENY\nwaf_action: {}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaservice_policy_ruleGetSpecType": {
        "type": "object",
        "description": "GET service_policy_rule reads a given object from storage backend for metadata.namespace.",
        "title": "Get service policy rule",
        "x-displayname": "GET Service Policy Rule.",
        "x-ves-oneof-field-asn_choice": "[\"any_asn\",\"asn_list\",\"asn_matcher\"]",
        "x-ves-oneof-field-client_choice": "[\"any_client\",\"client_name\",\"client_name_matcher\",\"client_selector\",\"ip_threat_category_list\"]",
        "x-ves-oneof-field-dst_asn_choice": "[]",
        "x-ves-oneof-field-dst_ip_choice": "[]",
        "x-ves-oneof-field-ip_choice": "[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-oneof-field-tls_fingerprint_choice": "[\"ja4_tls_fingerprint\",\"tls_fingerprint_matcher\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.GetSpecType",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRuleAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "any_asn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher"
            ]
          },
          "any_client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_name",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "api_group_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyStringMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "arg_matchers": {
            "type": "array",
            "description": "A list of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances\nof ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.\nNote that all specified arg matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyArgMatcherType"
            },
            "x-displayname": "Argument Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all POST args that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances of ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_matcher"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_list"
            ]
          },
          "body_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyBotAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "client_name": {
            "type": "string",
            "description": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list]\nThe expected name of the client invoking the request API.\nThe predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "maxLength": 256,
            "x-displayname": "Client Name.",
            "x-ves-example": "backend.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "backend.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API.",
            "x-f5xc-description-medium": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API. The predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "ip_threat_category_list"
            ]
          },
          "cookie_matchers": {
            "type": "array",
            "description": "A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyCookieMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Cookie Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all cookies that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domain_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for domain matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_matcher"
            ]
          },
          "ip_threat_category_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleIPThreatCategoryListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "client_selector"
            ]
          },
          "ja4_tls_fingerprint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyJA4TlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ja4 tls fingerprint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_fingerprint_matcher"
            ]
          },
          "jwt_claims": {
            "type": "array",
            "description": "A list of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType\ninstances. The actual JWT claims values are extracted from the JWT payload as a list of strings.\nNote that all specified JWT claim predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyJWTClaimMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "JWT Claims.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for various JWT claims that need to match.",
            "x-f5xc-description-medium": "List of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType instances. The actual JWT claims values are extracted from the JWT payload as a list of strings.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "log_rule_evaluation": {
            "type": "boolean",
            "description": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "format": "boolean",
            "x-displayname": "Log Rule Evaluation.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mum_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyModifyAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPortMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": null,
            "x-f5xc-server-default": true
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Query Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_constraints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestConstraintType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request constraints.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "segment_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policySegmentPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ja4_tls_fingerprint"
            ]
          },
          "waf_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyWafAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET service_policy_rule reads a given object from storage backend for metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policy_ruleGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaservice_policy_ruleReplaceSpecType": {
        "type": "object",
        "description": "Replace service_policy_rule replaces an existing object in the storage backend for metadata.namespace.",
        "title": "Replace service policy rule",
        "x-displayname": "Replace Service Policy Rule.",
        "x-ves-oneof-field-asn_choice": "[\"any_asn\",\"asn_list\",\"asn_matcher\"]",
        "x-ves-oneof-field-client_choice": "[\"any_client\",\"client_name\",\"client_name_matcher\",\"client_selector\",\"ip_threat_category_list\"]",
        "x-ves-oneof-field-dst_asn_choice": "[]",
        "x-ves-oneof-field-dst_ip_choice": "[]",
        "x-ves-oneof-field-ip_choice": "[\"any_ip\",\"ip_matcher\",\"ip_prefix_list\"]",
        "x-ves-oneof-field-tls_fingerprint_choice": "[\"ja4_tls_fingerprint\",\"tls_fingerprint_matcher\"]",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.ReplaceSpecType",
        "properties": {
          "action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRuleAction"
              }
            ],
            "x-ves-required": "true",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "any_asn": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "asn_list",
              "asn_matcher"
            ]
          },
          "any_client": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_name",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "any_ip": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ip_matcher",
              "ip_prefix_list"
            ]
          },
          "api_group_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyStringMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "arg_matchers": {
            "type": "array",
            "description": "A list of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances\nof ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.\nNote that all specified arg matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyArgMatcherType"
            },
            "x-displayname": "Argument Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all POST args that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all POST args that need to be matched. The criteria for matching each arg are described in individual instances of ArgMatcherType. The actual arg values are extracted from the request API as a list of strings for each arg selector name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "asn_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_matcher"
            ]
          },
          "asn_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyAsnMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for asn matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_asn",
              "asn_list"
            ]
          },
          "body_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyBotAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "client_name": {
            "type": "string",
            "description": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list]\nThe expected name of the client invoking the request API.\nThe predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "maxLength": 256,
            "x-displayname": "Client Name.",
            "x-ves-example": "backend.production.customer.F5 Distributed cloud.us.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-example": "backend.production.customer.F5 Distributed cloud.us",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "256"
            },
            "x-f5xc-description-short": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API.",
            "x-f5xc-description-medium": "Exclusive with [any_client client_name_matcher client_selector ip_threat_category_list] The expected name of the client invoking the request API. The predicate evaluates to true if any of the actual names is the same as the expected client name.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "byteLength": {
                "max": 256
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name_matcher",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_name_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-example": "example-resource",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_selector",
              "ip_threat_category_list"
            ]
          },
          "client_selector": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelSelectorType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "ip_threat_category_list"
            ]
          },
          "cookie_matchers": {
            "type": "array",
            "description": "A list of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances\nof CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.\nNote that all specified cookie matcher predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyCookieMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "Cookie Matchers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all cookies that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all cookies that need to be matched. The criteria for matching each cookie is described in individual instances of CookieMatcherType. The actual cookie values are extracted from the request API as a list of strings for each cookie name.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domain_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyMatcherTypeBasic"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for domain matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "expiration_timestamp": {
            "type": "string",
            "description": "The expiration_timestamp is the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in\nthe configuration but is not applied anymore.",
            "format": "date-time",
            "x-displayname": "Expiration Timestamp.",
            "x-ves-example": "2019-12-31:44:34.171543432Z.",
            "x-f5xc-example": "2019-12-31:44:34.171543432Z",
            "x-f5xc-description-short": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired.",
            "x-f5xc-description-medium": "Specifies expiration_timestamp the RFC 3339 format timestamp at which the containing rule is considered to be logically expired. The rule continues to exist in the configuration but is not applied anymore.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "type": "array",
            "description": "A list of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType\ninstances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.\nNote that all specified header predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyHeaderMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of predicates for various HTTP headers that need to match.",
            "x-f5xc-description-medium": "List of predicates for various HTTP headers that need to match. The criteria for matching each HTTP header are described in individual HeaderMatcherType instances. The actual HTTP header values are extracted from the request API as a list of strings for each HTTP header type.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "minItems": 0,
              "uniqueItems": false,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyHttpMethodMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http method.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ip_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyIpMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_prefix_list"
            ]
          },
          "ip_prefix_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyPrefixMatchList"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_ip",
              "ip_matcher"
            ]
          },
          "ip_threat_category_list": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleIPThreatCategoryListType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "any_client",
              "client_name",
              "client_name_matcher",
              "client_selector"
            ]
          },
          "ja4_tls_fingerprint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyJA4TlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ja4 tls fingerprint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_fingerprint_matcher"
            ]
          },
          "jwt_claims": {
            "type": "array",
            "description": "A list of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType\ninstances. The actual JWT claims values are extracted from the JWT payload as a list of strings.\nNote that all specified JWT claim predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/policyJWTClaimMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "JWT Claims.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for various JWT claims that need to match.",
            "x-f5xc-description-medium": "List of predicates for various JWT claims that need to match. The criteria for matching each JWT claim are described in individual JWTClaimMatcherType instances. The actual JWT claims values are extracted from the JWT payload as a list of strings.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaLabelMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "log_rule_evaluation": {
            "type": "boolean",
            "description": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "format": "boolean",
            "x-displayname": "Log Rule Evaluation.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Log the rule match details along with the request and continue to evaluate rules in the sequence.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "mum_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyModifyAction"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "path": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPathMatcherType"
              }
            ],
            "x-f5xc-example": "/api/v1/resources",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "port_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemapolicyPortMatcherType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "default": null,
            "x-f5xc-server-default": true
          },
          "query_params": {
            "type": "array",
            "description": "A list of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances\nof QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query parameter name.\nNote that all specified query parameter predicates must evaluate to true.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/schemapolicyQueryParameterMatcherType__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "HTTP Query Parameters.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "List of predicates for all query parameters that need to be matched.",
            "x-f5xc-description-medium": "List of predicates for all query parameters that need to be matched. The criteria for matching each query parameter are described in individual instances of QueryParameterMatcherType. The actual query parameter values are extracted from the request API as a list of strings for each query...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_constraints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyRequestConstraintType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request constraints.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "segment_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policySegmentPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_fingerprint_matcher": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyTlsFingerprintMatcherType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls fingerprint matcher.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ja4_tls_fingerprint"
            ]
          },
          "waf_action": {
            "allOf": [
              {
                "$ref": "#/components/schemas/policyWafAction"
              }
            ],
            "x-ves-required": "true",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Replace service_policy_rule replaces an existing object in the storage backend for metadata.namespace.",
        "x-f5xc-description-medium": "Replace service_policy_rule replaces an existing object in the storage backend for metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policy_ruleReplaceSpecType",
          "required_fields": [
            "action",
            "waf_action"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"action\": \"DENY\",\n  \"waf_action\": {}\n}",
          "example_yaml": "action: DENY\nwaf_action: {}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of service_policy_rule",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleCreateRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a service_policy_rule",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read service_policy_rule",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policy_ruleCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/service_policy_ruleReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/service_policy_ruleStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of service_policy_rule",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/service_policy_ruleListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleListResponseItem": {
        "type": "object",
        "description": "By default a summary of service_policy_rule is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of service_policy_rule",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this service_policy_rule.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this service_policy_rule.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this service_policy_rule.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this service_policy_rule.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates service_policy_rule is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates service_policy_rule is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this service_policy_rule.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this service_policy_rule.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this service_policy_rule.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/service_policy_ruleStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this service_policy_rule.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this service_policy_rule.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of service_policy_rule is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of service_policy_rule is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a service_policy_rule",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_ruleReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleReplaceRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "service_policy_ruleStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Status for service policy rule",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.service_policy_rule.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions reported by various component of the system.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions reported by various component of the system.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_ruleStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaservice_policy_setGetSpecType": {
        "type": "object",
        "description": "GET service_policy_set reads a given object from storage backend for metadata.namespace.",
        "title": "Get service policy",
        "x-displayname": "GET Service Policy Set.",
        "x-ves-proto-message": "ves.io.schema.service_policy_set.GetSpecType",
        "properties": {
          "policies": {
            "type": "array",
            "description": "An ordered list of references to service_policy objects.",
            "maxItems": 16,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Policies",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "16"
            },
            "x-f5xc-description-short": "Ordered list of references to service_policy objects.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 16,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET service_policy_set reads a given object from storage backend for metadata.namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaservice_policy_setGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-recommended-oneof-variant": {
          "rule_choice": "allow_all_requests",
          "server_choice": "any_server"
        },
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policy_setGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read service_policy_set",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.service_policy_set.GetResponse",
        "properties": {
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_setGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/service_policy_setStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_setGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policy_setListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of service_policy_set",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.service_policy_set.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/service_policy_setListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_setListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policy_setListResponseItem": {
        "type": "object",
        "description": "By default a summary of service_policy_set is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of service_policy_set",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.service_policy_set.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this service_policy_set.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this service_policy_set.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this service_policy_set.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this service_policy_set.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates service_policy_set is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates service_policy_set is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaservice_policy_setGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this service_policy_set.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this service_policy_set.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this service_policy_set.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/service_policy_setStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this service_policy_set.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this service_policy_set.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of service_policy_set is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of service_policy_set is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_setListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "service_policy_setStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Status for service policy set",
        "x-displayname": "Status",
        "x-ves-proto-message": "ves.io.schema.service_policy_set.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions reported by various component of the system.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions reported by various component of the system.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for service_policy_setStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "network_security",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Service policies benefit from centralized management for cross-namespace reuse"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "app_typeAPIEPDynExample": {
        "type": "object",
        "description": "List of Examples of expanded URL components for API endpoints that are collapsed with a dynamic component that is identified automatically.",
        "title": "API endpoint dynamic example",
        "x-displayname": "Expanded API Endpoints.",
        "x-ves-proto-message": "ves.io.schema.app_type.APIEPDynExample",
        "properties": {
          "component_examples": {
            "type": "array",
            "description": "List of sample URL(s) that are collapsed.",
            "title": "List of expanded URLs",
            "items": {
              "type": "string"
            },
            "x-displayname": "Expanded URL(s)",
            "x-ves-example": "[00000000-0000-4000-8000-885eebac2748, 00000000-0000-4000-8000-de5d031e1760]",
            "x-f5xc-example": "[00000000-0000-4000-8000-885eebac2748, 00000000-0000-4000-8000-de5d031e1760]",
            "x-f5xc-description-short": "List of sample URL(s) that are collapsed.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "component_identifier": {
            "type": "string",
            "description": "Dynamic component used to collapse sample URLs given in Expanded URLs.",
            "title": "Dynamic component",
            "x-displayname": "Dynamic Component.",
            "x-ves-example": "/API/v1/user_id/DYN.",
            "x-f5xc-example": "/api/v1/user_id/DYN",
            "x-f5xc-description-short": "Dynamic component used to collapse sample URLs given in Expanded URLs.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "List of Examples of expanded URL components for API endpoints that are collapsed with a dynamic component that is identified automatically.",
        "x-f5xc-description-medium": "List of Examples of expanded URL components for API endpoints that are collapsed with a dynamic component that is identified automatically.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAPIEPDynExample",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAPIEPInfo": {
        "type": "object",
        "description": "Information about automatically identified API endpoint\nEach identified API endpoint has a CollapsedURL and Method.\nCollapsedURL is created by replacing dynamic components in the URL, if any, with the keyword DYN.\nThese dynamic components are automatically identified.\nAdditionally, any API endpoint that has a collapsedURL with automatically identified DYN components,\nwill also have DYN-Examples which show a few examples of the original values of the components that were determined to be DYN.",
        "title": "Identified API",
        "x-displayname": "API Endpoint Info.",
        "x-ves-proto-message": "ves.io.schema.app_type.APIEPInfo",
        "properties": {
          "access_discovery_time": {
            "type": "string",
            "description": "Access_discovery_time is the time when the API endpoint\nwas updated from the access logs by the discovery mechanism.\nIt is the UTC time and represented in RFC3339 form.",
            "title": "access_discovery_time",
            "format": "date-time",
            "x-displayname": "Access Discovery Time.",
            "x-f5xc-description-short": "Access_discovery_time is the time when the API endpoint was updated from the access logs by the discovery mechanism.",
            "x-f5xc-description-medium": "Access_discovery_time is the time when the API endpoint was updated from the access logs by the discovery mechanism. It is the UTC time and represented in RFC3339 form.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_groups": {
            "type": "array",
            "description": "List of API Groups the API Endpoint is a member of.",
            "title": "API Groups membership",
            "items": {
              "type": "string"
            },
            "x-displayname": "API Groups membership.",
            "x-f5xc-example": "[\"sensitive\", \"read-only\"]",
            "x-f5xc-description-short": "List of API Groups the API Endpoint is a member of.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "attributes": {
            "type": "array",
            "description": "List of API endpoint attributes.",
            "title": "attributes",
            "items": {
              "type": "string"
            },
            "x-displayname": "Attributes.",
            "x-f5xc-example": "[GraphQL, login etc.]",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "authentication_state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAuthenticationState"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for authentication state.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "authentication_types": {
            "type": "array",
            "description": "List of authentication types found in the API endpoint and their locations.",
            "title": "authentication_types",
            "items": {
              "$ref": "#/components/schemas/app_typeAuthenticationTypeLocPair"
            },
            "x-displayname": "Authentication Types and Locations.",
            "x-f5xc-description-short": "List of authentication types found in the API endpoint and their locations.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "avg_latency": {
            "type": "number",
            "description": "Average latency observed for the API Endpoint.",
            "title": "avg_latency",
            "format": "float",
            "x-displayname": "Average Latency.",
            "x-f5xc-example": "2.34",
            "x-f5xc-description-short": "Average latency observed for the API Endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "base_path": {
            "type": "string",
            "description": "The base path for this Endpoint.",
            "title": "base_path",
            "x-displayname": "Base Path",
            "x-ves-example": "/v1",
            "x-f5xc-example": "/v1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "category": {
            "type": "array",
            "description": "The category of the API Endpoint relative to API Inventory.",
            "title": "Category",
            "items": {
              "$ref": "#/components/schemas/app_typeAPIEPCategory"
            },
            "x-displayname": "Category",
            "x-f5xc-example": "APIEP_CATEGORY_DISCOVERED, APIEP_CATEGORY_INVENTORY",
            "x-f5xc-description-short": "The category of the API Endpoint relative to API Inventory.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "collapsed_url": {
            "type": "string",
            "description": "URL for automatically identified API.",
            "title": "Identified API",
            "x-displayname": "API endpoint URL.",
            "x-ves-example": "/API/v1/user_id/DYN/vehicle_id/DYN.",
            "x-f5xc-example": "/api/v1/user_id/DYN/vehicle_id/DYN",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "compliances": {
            "type": "array",
            "description": "List of compliance frameworks of the Endpoint.",
            "title": "compliances",
            "items": {
              "type": "string"
            },
            "x-displayname": "Compliances.",
            "x-f5xc-example": "[\"GDPR\", \"HIPAA\", \"CCPA\"]",
            "x-f5xc-description-short": "List of compliance frameworks of the Endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domains": {
            "type": "array",
            "description": "List of Domains of the API endpoint.",
            "title": "List of domains",
            "items": {
              "type": "string"
            },
            "x-displayname": "List of Domains.",
            "x-ves-example": "[www.example1.com\", \"www.example2.com]",
            "x-f5xc-example": "\"[www.example1.com\", \"www.example2.com]\"",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "networking",
              "minItems": 1,
              "maxItems": 32,
              "uniqueItems": true,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dyn_examples": {
            "type": "array",
            "description": "For example -\n{\"dyn_examples\": [\n{\n\"component_identifier\": \"API/v1/user_id/DYN\",\n\"component_examples\": [\n\"cmenomo007\",\n\"marcusaurelius\"\n\"artattacksince1947\",\n\"johndoe83\",\n]\n},\n{\n\"component_identifier\": \"API/v1/user_id/DYN/vehicle_id/DYN\",\n\"component_examples\": [\n\"JN1CV6AR3AM458367\",\n\"1GBCS10AXP2917522\",\n\"JM1DE1KY9D0155647\",\n\"JN1CA31D5YT533780\"\n]\n}\n]}\nList of sample URL(s) that are collapsed and dynamic components to collapse them.",
            "title": "Expanded URL(s)",
            "items": {
              "$ref": "#/components/schemas/app_typeAPIEPDynExample"
            },
            "x-displayname": "Expanded URL(s)",
            "x-ves-example": "{component_identifier: API/v1/user_id/DYN,component_examples: [cmenomo007]}",
            "x-f5xc-example": "{component_identifierapi/v1/user_id/DYN,component_examples: [cmenomo007]}",
            "x-f5xc-description-short": "For example - {\"dyn_examples\": [ { \"component_identifier\": \"API/v1/user_id/DYN\", \"component_examples\": [ \"cmenomo007\", \"marcusaurelius\"...",
            "x-f5xc-description-medium": "For example - {\"dyn_examples\": [ { \"component_identifier\": \"API/v1/user_id/DYN\", \"component_examples\": [ \"cmenomo007\", \"marcusaurelius\" \"artattacksince1947\", \"johndoe83\", ] }, { \"component_identifier\": \"API/v1/user_id/DYN/vehicle_id/DYN\", \"component_examples\": [ \"JN1CV6AR3AM458367\"...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "engines": {
            "type": "array",
            "description": "List of engines that detected the endpoint.",
            "title": "engines",
            "items": {
              "type": "string"
            },
            "x-displayname": "Engines",
            "x-f5xc-example": "[\"TRAFFIC_INSPECTION\", \"CODE_ANALYSIS\", \"CRAWLER\"]",
            "x-f5xc-description-short": "List of engines that detected the endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "err_rsp_count": {
            "type": "string",
            "description": "Number of request with 4xx or 5xx response for the API Endpoint.",
            "title": "error status code count",
            "format": "uint64",
            "x-displayname": "Error Count.",
            "x-f5xc-example": "1234",
            "x-f5xc-description-short": "Number of request with 4xx or 5xx response for the API Endpoint.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "has_learnt_schema": {
            "type": "boolean",
            "description": "Has Learnt Schema flag for request API endpoint.",
            "title": "Has Learnt Schema",
            "format": "boolean",
            "x-displayname": "Has Learnt Schema.",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Has Learnt Schema flag for request API endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "last_tested": {
            "type": "string",
            "description": "API testing last tested time is the time when the API endpoint\nwas last tested.",
            "title": "last api testing",
            "format": "date-time",
            "x-displayname": "Last tested.",
            "x-f5xc-description-short": "API testing last tested time is the time when the API endpoint was last tested.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_latency": {
            "type": "number",
            "description": "Maximum latency observed for the API Endpoint.",
            "title": "max_latency",
            "format": "float",
            "x-displayname": "Max Latency.",
            "x-f5xc-example": "9.87",
            "x-f5xc-description-short": "Maximum latency observed for the API Endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method": {
            "type": "string",
            "description": "HTTP method for the API.",
            "title": "HTTP method",
            "x-displayname": "HTTP Method.",
            "x-ves-example": "GET",
            "x-f5xc-example": "GET",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "owasp_categories": {
            "type": "array",
            "description": "Categories of the vulnerability as per the OWASP API Top 10.",
            "title": "owasp_categories",
            "items": {
              "$ref": "#/components/schemas/schemaOwaspCategory"
            },
            "x-displayname": "OWASP Categories.",
            "x-f5xc-description-short": "Categories of the vulnerability as per the OWASP API Top 10.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "pdf_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIEPPDFInfo"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "pii_level": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIEPPIILevel"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "req_rate": {
            "type": "number",
            "description": "Request rate for the API Endpoint.",
            "title": "req_rate",
            "format": "float",
            "x-displayname": "Request Rate.",
            "x-f5xc-example": "10.5",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_percentage": {
            "type": "number",
            "description": "Percentage of requests that were directed to this API Endpoint.",
            "title": "Request percentage",
            "format": "float",
            "x-displayname": "Request Percentage.",
            "x-ves-example": "78.5789",
            "x-f5xc-example": "78.5789",
            "x-f5xc-description-short": "Percentage of requests that were directed to this API Endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "requests_count": {
            "type": "integer",
            "description": "Number of requests seen for this API Endpoint for the specified time-range.",
            "title": "requests_count",
            "format": "int32",
            "x-displayname": "Number Of Total Requests.",
            "x-ves-example": "1234",
            "x-f5xc-example": "1234",
            "x-f5xc-description-short": "Number of requests seen for this API Endpoint for the specified time-range.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "risk_score": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeRiskScore"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "schema_status": {
            "type": "string",
            "description": "Schema status indicates the API Endpoint's schema origin and if it's outdated.",
            "title": "schema_status",
            "x-displayname": "Schema Status.",
            "x-ves-example": "Discovered Not-Updated.",
            "x-f5xc-example": "Discovered Not-Updated",
            "x-f5xc-description-short": "Schema status indicates the API Endpoint's schema origin and if it's outdated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sec_events_count": {
            "type": "integer",
            "description": "Number of sec_events seen for this API Endpoint for the specified time-range.",
            "title": "sec_events_count",
            "format": "int32",
            "x-displayname": "Number Of Total Security Events.",
            "x-ves-example": "1234",
            "x-f5xc-example": "1234",
            "x-f5xc-description-short": "Number of sec_events seen for this API Endpoint for the specified time-range.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "security_risk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIEPSecurityRisk"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data": {
            "type": "array",
            "description": "List of Sensitive Data found in the API endpoint.",
            "title": "List of Sensitive Data",
            "items": {
              "$ref": "#/components/schemas/app_typeSensitiveDataType"
            },
            "x-displayname": "List of Sensitive Data.",
            "x-ves-example": "[SENSITIVE_DATA_TYPE_CCN, SENSITIVE_DATA_TYPE_SSN, SENSITIVE_DATA_TYPE_IP]",
            "x-f5xc-example": "[SENSITIVE_DATA_TYPE_CCN, SENSITIVE_DATA_TYPE_SSN, SENSITIVE_DATA_TYPE_IP]",
            "x-f5xc-description-short": "List of Sensitive Data found in the API endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_location": {
            "type": "array",
            "description": "Sensitive data location for the API Endpoint.",
            "title": "sensitive data location",
            "items": {
              "type": "string"
            },
            "x-displayname": "Sensitive Data Location.",
            "x-f5xc-example": "Request",
            "x-f5xc-description-short": "Sensitive data location for the API Endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_types": {
            "type": "array",
            "description": "List of Sensitive Data found in the API endpoint.",
            "title": "List of Sensitive Data",
            "items": {
              "type": "string"
            },
            "x-displayname": "List of Sensitive Data.",
            "x-ves-example": "[Social-Security-Number, Credit-Card-Number]",
            "x-f5xc-example": "[Social-Security-Number, Credit-Card-Number]",
            "x-f5xc-description-short": "List of Sensitive Data found in the API endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Information about automatically identified API endpoint Each identified API endpoint has a CollapsedURL and Method.",
        "x-f5xc-description-medium": "Information about automatically identified API endpoint Each identified API endpoint has a CollapsedURL and Method. CollapsedURL is created by replacing dynamic components in the URL, if any, with the keyword DYN. These dynamic components are automatically identified.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAPIEPInfo",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAPIEPPDFInfo": {
        "type": "object",
        "description": "Metrics supported currently are request_size response_size latency_with_data, latency_no_data.\nPDF is calculated for each combination of (Tenant, App type, API endpoint).\nAPI endpoint is determined from automatically identified API (collapsed_url) and method.\nIn the univariate case PDFSpec for each metric is repeated num_pdf_samples times.\nNum_pdf_samples is a parameter is system wide parameter currently set to 200.",
        "title": "Probability Density Function",
        "x-displayname": "PDF(Value)",
        "x-ves-displayorder": "1,2,4,3,5,6,7",
        "x-ves-proto-message": "ves.io.schema.app_type.APIEPPDFInfo",
        "properties": {
          "creation_timestamp": {
            "type": "string",
            "description": "Creation_timestamp represents the time when this PDF was created\nIt is represented in RFC3339 form and is in UTC.",
            "title": "creation_timestamp",
            "format": "date-time",
            "x-displayname": "Creation Timestamp.",
            "x-f5xc-description-short": "Creation_timestamp represents the time when this PDF was created It is represented in RFC3339 form and is in UTC.",
            "x-f5xc-description-medium": "Creation_timestamp represents the time when this PDF was created It is represented in RFC3339 form and is in UTC.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "error_rate": {
            "type": "array",
            "description": "List of Probability density points for PDF for error rate.",
            "title": "PDF(error rate)",
            "items": {
              "$ref": "#/components/schemas/app_typePDFSpec"
            },
            "x-displayname": "PDF(Error Rate)",
            "x-f5xc-description-short": "List of Probability density points for PDF for error rate.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "error_rate_stat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typePDFStat"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for error rate stat.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "latency_no_data": {
            "type": "array",
            "description": "List of Probability density points for PDF for latency of response begin.",
            "title": "PDF(response latency to first byte)",
            "items": {
              "$ref": "#/components/schemas/app_typePDFSpec"
            },
            "x-displayname": "PDF(Latency Begin)",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of Probability density points for PDF for latency of response begin.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "latency_no_data_stat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typePDFStat"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "latency_with_data": {
            "type": "array",
            "description": "List of Probability density points for PDF for latency of response end.",
            "title": "PDF(response latency)",
            "items": {
              "$ref": "#/components/schemas/app_typePDFSpec"
            },
            "x-displayname": "PDF(Latency End)",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of Probability density points for PDF for latency of response end.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "latency_with_data_stat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typePDFStat"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_rate": {
            "type": "array",
            "description": "List of Probability density points for PDF for request rate.",
            "title": "PDF(request rate)",
            "items": {
              "$ref": "#/components/schemas/app_typePDFSpec"
            },
            "x-displayname": "PDF(Request Rate)",
            "x-f5xc-description-short": "List of Probability density points for PDF for request rate.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_rate_stat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typePDFStat"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request rate stat.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_size": {
            "type": "array",
            "description": "List of Probability density points for PDF for request size.",
            "title": "PDF(request_size)",
            "items": {
              "$ref": "#/components/schemas/app_typePDFSpec"
            },
            "x-displayname": "PDF(Request)",
            "x-f5xc-description-short": "List of Probability density points for PDF for request size.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_size_stat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typePDFStat"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request size stat.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_size": {
            "type": "array",
            "description": "List of Probability density points for PDF for response size.",
            "title": "PDF(response_size)",
            "items": {
              "$ref": "#/components/schemas/app_typePDFSpec"
            },
            "x-displayname": "PDF(Response)",
            "x-f5xc-description-short": "List of Probability density points for PDF for response size.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_size_stat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typePDFStat"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for response size stat.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_throughput": {
            "type": "array",
            "description": "List of Probability density points for PDF for response throughput.",
            "title": "PDF(response throughput)",
            "items": {
              "$ref": "#/components/schemas/app_typePDFSpec"
            },
            "x-displayname": "PDF(Response Throughput)",
            "x-f5xc-description-short": "List of Probability density points for PDF for response throughput.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_throughput_stat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typePDFStat"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for response throughput stat.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Metrics supported currently are request_size response_size latency_with_data, latency_no_data.",
        "x-f5xc-description-medium": "Metrics supported currently are request_size response_size latency_with_data, latency_no_data. PDF is calculated for each combination of (Tenant, App type, API endpoint). API endpoint is determined from automatically identified API (collapsed_url) and method.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAPIEPPDFInfo",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAPIEPPIILevel": {
        "type": "string",
        "description": "API Endpoint's PII Level.\n\nNo PII data detected for the given API Endpoint.\nDetected PII data for a given API Endpoint.",
        "title": "APIEP PII Level",
        "enum": [
          "APIEP_PII_NOT_DETECTED",
          "APIEP_PII_DETECTED"
        ],
        "default": "APIEP_PII_NOT_DETECTED",
        "x-displayname": "API EP PII Level.",
        "x-ves-proto-enum": "ves.io.schema.app_type.APIEPPIILevel",
        "x-f5xc-description-short": "API Endpoint's PII Level. No PII data detected for the given API Endpoint.",
        "x-f5xc-description-medium": "API Endpoint's PII Level. No PII data detected for the given API Endpoint. Detected PII data for a given API Endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAPIEPPIILevel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"APIEP_PII_NOT_DETECTED\"",
          "example_yaml": "APIEP_PII_NOT_DETECTED\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAPIType": {
        "type": "string",
        "description": "List of possible types of API that can be discovered for an APIEP.\n\nThe API Type detected as unknown.\nThe API Type detected as GraphQL.\nThe API Type detected as REST.\nThe API Type detected as gRPC.",
        "title": "APIType",
        "enum": [
          "API_TYPE_UNKNOWN",
          "API_TYPE_GRAPHQL",
          "API_TYPE_REST",
          "API_TYPE_GRPC"
        ],
        "default": "API_TYPE_UNKNOWN",
        "x-displayname": "API Type",
        "x-ves-proto-enum": "ves.io.schema.app_type.APIType",
        "x-f5xc-description-short": "List of possible types of API that can be discovered for an APIEP. The API Type detected as unknown.",
        "x-f5xc-description-medium": "List of possible types of API that can be discovered for an APIEP. The API Type detected as unknown. The API Type detected as GraphQL. The API Type detected as REST. The API Type detected as gRPC.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAPIType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"API_TYPE_UNKNOWN\"",
          "example_yaml": "API_TYPE_UNKNOWN\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeApiEndpointInfoRequest": {
        "type": "string",
        "description": "This is the various forms that can be requested to be sent in the ApiEndpointInfoRequest\n\nAPI ENDPOINT INFO NONE option is used to disable any additional info request per API endpoint response\nAPI ENDPOINT INFO PDF SPARKLINES option is used to enable pdf sparkline info along with the API endpoint response.",
        "title": "ApiEndpointInfoRequest",
        "enum": [
          "API_ENDPOINT_INFO_NONE",
          "API_ENDPOINT_INFO_PDF_SPARKLINES"
        ],
        "default": "API_ENDPOINT_INFO_NONE",
        "x-displayname": "API Endpoint Info Request.",
        "x-ves-proto-enum": "ves.io.schema.app_type.ApiEndpointInfoRequest",
        "x-f5xc-description-short": "Various forms that can be requested to be sent in the ApiEndpointInfoRequest API ENDPOINT INFO NONE option is used to disable any additional info...",
        "x-f5xc-description-medium": "Various forms that can be requested to be sent in the ApiEndpointInfoRequest API ENDPOINT INFO NONE option is used to disable any additional info request per API endpoint response API ENDPOINT INFO PDF SPARKLINES option is used to enable pdf sparkline info along with the API endpoint response.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeApiEndpointInfoRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"API_ENDPOINT_INFO_NONE\"",
          "example_yaml": "API_ENDPOINT_INFO_NONE\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAuthentication": {
        "type": "object",
        "description": "Authentication details for a given API endpoint.",
        "title": "Authentication",
        "x-displayname": "Authentication.",
        "x-ves-proto-message": "ves.io.schema.app_type.Authentication",
        "properties": {
          "auth_data_per_definition": {
            "type": "object",
            "description": "Authentication Data Per Definition.",
            "title": "auth_data_per_definition",
            "x-displayname": "Authentication Data Per Definition.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Authentication details for a given API endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAuthentication",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAuthenticationLocation": {
        "type": "string",
        "description": "API Endpoint's Authentication Location.\n\nThe API Endpoint authentication location is header.\nThe API Endpoint authentication location is query parameter.\nThe API Endpoint authentication location is request body.\nThe API Endpoint authentication location is cookie.",
        "title": "APIEP Authentication Location",
        "enum": [
          "AUTH_LOCATION_HEADER",
          "AUTH_LOCATION_QUERY",
          "AUTH_LOCATION_BODY",
          "AUTH_LOCATION_COOKIE"
        ],
        "default": "AUTH_LOCATION_HEADER",
        "x-displayname": "API EP Authentication Location.",
        "x-ves-proto-enum": "ves.io.schema.app_type.AuthenticationLocation",
        "x-f5xc-description-short": "API Endpoint's Authentication Location. The API Endpoint authentication location is header.",
        "x-f5xc-description-medium": "API Endpoint's Authentication Location. The API Endpoint authentication location is header. The API Endpoint authentication location is query parameter.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAuthenticationLocation",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"AUTH_LOCATION_HEADER\"",
          "example_yaml": "AUTH_LOCATION_HEADER\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAuthenticationState": {
        "type": "string",
        "description": "API Endpoint's Authentication State.\n\nThe API Endpoint authentication state is unknown.\nThe API Endpoint is authenticated\nThe API Endpoint is unauthenticated.",
        "title": "APIEP Authentication State",
        "enum": [
          "AUTH_STATE_UNKNOWN",
          "AUTH_STATE_AUTHENTICATED",
          "AUTH_STATE_UNAUTHENTICATED"
        ],
        "default": "AUTH_STATE_UNKNOWN",
        "x-displayname": "API EP Authentication State.",
        "x-ves-proto-enum": "ves.io.schema.app_type.AuthenticationState",
        "x-f5xc-description-short": "API Endpoint's Authentication State. The API Endpoint authentication state is unknown.",
        "x-f5xc-description-medium": "API Endpoint's Authentication State. The API Endpoint authentication state is unknown. The API Endpoint is authenticated The API Endpoint is unauthenticated.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAuthenticationState",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"AUTH_STATE_UNKNOWN\"",
          "example_yaml": "AUTH_STATE_UNKNOWN\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAuthenticationType": {
        "type": "string",
        "description": "API Endpoint's Authentication Type.\n\nThe API Endpoint authentication type is Basic.\nThe API Endpoint authentication type is Bearer.\nThe API Endpoint authentication type is JWT.\nThe API Endpoint authentication type is API Key.\nThe API Endpoint authentication type is OAuth 2.0.\nThe API Endpoint authentication type is OpenID Connect Discovery.\nThe API Endpoint authentication type is HTTP.\nThe API Endpoint authentication type is OAuth 1.0.\nThe API Endpoint authentication type is Digest.\nThe API Endpoint authentication type is Negotiate.",
        "title": "APIEP Authentication Type",
        "enum": [
          "AUTH_TYPE_BASIC",
          "AUTH_TYPE_BEARER",
          "AUTH_TYPE_JWT",
          "AUTH_TYPE_API_KEY",
          "AUTH_TYPE_OAUTH2",
          "AUTH_TYPE_OPENID",
          "AUTH_TYPE_HTTP",
          "AUTH_TYPE_OAUTH1",
          "AUTH_TYPE_DIGEST",
          "AUTH_TYPE_NEGOTIATE"
        ],
        "default": "AUTH_TYPE_BASIC",
        "x-displayname": "API EP Authentication Type.",
        "x-ves-proto-enum": "ves.io.schema.app_type.AuthenticationType",
        "x-f5xc-description-short": "API Endpoint's Authentication Type. The API Endpoint authentication type is Basic.",
        "x-f5xc-description-medium": "API Endpoint's Authentication Type. The API Endpoint authentication type is Basic. The API Endpoint authentication type is Bearer. The API Endpoint authentication type is JWT. The API Endpoint authentication type is API Key.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAuthenticationType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"AUTH_TYPE_BASIC\"",
          "example_yaml": "AUTH_TYPE_BASIC\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeAuthenticationTypeLocPair": {
        "type": "object",
        "description": "API Endpoint's Authentication Type and Location.",
        "title": "APIEP Authentication Type and Location Pair",
        "x-displayname": "API EP Authentication Type and Location Pair.",
        "x-ves-proto-message": "ves.io.schema.app_type.AuthenticationTypeLocPair",
        "properties": {
          "auth_type": {
            "type": "string",
            "description": "The detected authentication type by string format.",
            "title": "auth_type",
            "x-displayname": "Authentication Type.",
            "x-ves-example": "Basic",
            "x-f5xc-example": "Basic",
            "x-f5xc-description-short": "The detected authentication type by string format.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "location": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAuthenticationLocation"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 4,
            "minLength": 4,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAuthenticationType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "API Endpoint's Authentication Type and Location.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeAuthenticationTypeLocPair",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeDiscoveredSchema": {
        "type": "object",
        "description": "Discovery schema for request API endpoint.",
        "title": "Discovery schema",
        "x-displayname": "Discovery Schema.",
        "x-ves-proto-message": "ves.io.schema.app_type.DiscoveredSchema",
        "properties": {
          "last_updated_time": {
            "type": "string",
            "description": "Last Updated Time for request API endpoint. The time updated when the APIEP file is uploaded to Azure/AWS.",
            "title": "Last Updated Time",
            "format": "date-time",
            "x-displayname": "Last Updated Time.",
            "x-ves-example": "2021-01-22 15:46:23.767649.",
            "x-f5xc-example": "2021-01-22 15:46:23.767649",
            "x-f5xc-description-short": "Last Updated Time for request API endpoint. The time updated when the APIEP file is uploaded to Azure/AWS.",
            "x-f5xc-description-medium": "Last Updated Time for request API endpoint. The time updated when the APIEP file is uploaded to Azure/AWS.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeRequestSchema"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for request schema.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_schema_per_rsp_code": {
            "type": "object",
            "description": "Response schema per rsp code for request API endpoint.",
            "title": "Response schema per rsp code",
            "x-displayname": "Response Schema Per Rsp Code.",
            "x-f5xc-description-short": "Response schema per rsp code for request API endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Discovery schema for request API endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeDiscoveredSchema",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typePDFSpec": {
        "type": "object",
        "description": "Probability Density point in (PDF(x)) of the metric.\nX is the value of the metric, probability is the corresponding PDF(x).\nIn the univariate case (current configuration), the value x of the metrics is a scaler.\nAs PDFSpec is repeated (see below), the x values are linearly spaced monotonically from minimum to maximum.",
        "title": "Probability Density Point(x,y)",
        "x-displayname": "Point(Value, Probability)",
        "x-ves-proto-message": "ves.io.schema.app_type.PDFSpec",
        "properties": {
          "probability": {
            "type": "number",
            "description": "Probability of given Value of the metric that can be plotted on y-axis.",
            "title": "Probability",
            "format": "float",
            "x-displayname": "Probability.",
            "x-ves-example": "0.078",
            "x-f5xc-example": "0.078",
            "x-f5xc-description-short": "Probability of given Value of the metric that can be plotted on y-axis.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "x": {
            "type": "number",
            "description": "Value of the metric that can be plotted on x-axis.",
            "title": "Metric Value",
            "format": "float",
            "x-displayname": "Value",
            "x-ves-example": "121.316",
            "x-f5xc-example": "121.316",
            "x-f5xc-description-short": "Value of the metric that can be plotted on x-axis.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Probability Density point in (PDF(x)) of the metric. X is the value of the metric, probability is the corresponding PDF(x).",
        "x-f5xc-description-medium": "Probability Density point in (PDF(x)) of the metric. X is the value of the metric, probability is the corresponding PDF(x). In the univariate case (current configuration), the value x of the metrics is a scaler.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typePDFSpec",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typePDFStat": {
        "type": "object",
        "description": "Probability Density Function statistics of the metric.\nPdf_mean is the mean PDF of the metric, pdf_95 is the 95th percentile PDF of the metric.\nIn the univariate case PDFStat for each metric consists of pdf_mean and pdf_95.",
        "title": "Probability Density Function Statistics",
        "x-displayname": "PDF(Statistics)",
        "x-ves-proto-message": "ves.io.schema.app_type.PDFStat",
        "properties": {
          "pdf_95": {
            "type": "number",
            "description": "Pdf_95 represents the 95th percentile of PDF.",
            "title": "PDF 95th Percentile",
            "format": "float",
            "x-displayname": "PDF(95th Percentile)",
            "x-ves-example": "0.078",
            "x-f5xc-example": "0.078",
            "x-f5xc-description-short": "Pdf_95 represents the 95th percentile of PDF.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "pdf_mean": {
            "type": "number",
            "description": "Pdf_mean represents the mean of PDF.",
            "title": "PDF Mean",
            "format": "float",
            "x-displayname": "PDF(Mean)",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Probability Density Function statistics of the metric. Pdf_mean is the mean PDF of the metric, pdf_95 is the 95th percentile PDF of the metric.",
        "x-f5xc-description-medium": "Probability Density Function statistics of the metric. Pdf_mean is the mean PDF of the metric, pdf_95 is the 95th percentile PDF of the metric. In the univariate case PDFStat for each metric consists of pdf_mean and pdf_95.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typePDFStat",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeRequestSchema": {
        "type": "object",
        "description": "Request schema for a given API endpoint.",
        "title": "Request Schema",
        "x-displayname": "Request Schema.",
        "x-ves-proto-message": "ves.io.schema.app_type.RequestSchema",
        "properties": {
          "body_per_content_type": {
            "type": "object",
            "description": "Body schema per content type for request API endpoint.",
            "title": "Body schema per content type",
            "x-displayname": "Body Schema Per Content Type.",
            "x-f5xc-description-short": "Body schema per content type for request API endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "cookies": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeSchemaStruct"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "headers": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeSchemaStruct"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "query_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeSchemaStruct"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for query params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request schema for a given API endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeRequestSchema",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeSchemaStruct": {
        "type": "object",
        "description": "Schema structure for a given API endpoint.",
        "title": "Schema Structure",
        "x-displayname": "Schema Structure.",
        "x-ves-proto-message": "ves.io.schema.app_type.SchemaStruct",
        "properties": {
          "examples": {
            "type": "array",
            "description": "Examples for request API endpoint.",
            "title": "Examples",
            "items": {
              "type": "string"
            },
            "x-displayname": "Examples",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "schema": {
            "type": "string",
            "description": "Schema for request API endpoint.",
            "title": "Schema",
            "x-displayname": "Schema",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Schema structure for a given API endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeSchemaStruct",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeSensitiveData": {
        "type": "object",
        "description": "Sensitive data for a given API endpoint.",
        "title": "Sensitive Data",
        "x-displayname": "Sensitive Data.",
        "x-ves-proto-message": "ves.io.schema.app_type.SensitiveData",
        "properties": {
          "compliances": {
            "type": "array",
            "description": "Compliance frameworks.",
            "title": "Compliances",
            "items": {
              "type": "string"
            },
            "x-displayname": "Compliances.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "examples": {
            "type": "array",
            "description": "Examples of sensitive data.",
            "title": "Examples",
            "items": {
              "type": "string"
            },
            "x-displayname": "Examples",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "field": {
            "type": "string",
            "description": "Field of sensitive data.",
            "title": "Field",
            "x-displayname": "Field",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rule_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeSensitiveDataDetectionRuleType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "section": {
            "type": "string",
            "description": "Section of sensitive data.",
            "title": "Section",
            "x-displayname": "Section",
            "x-f5xc-example": "req_body",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_type": {
            "type": "string",
            "description": "Type of sensitive data.",
            "title": "Sensitive Data Type",
            "x-displayname": "Type",
            "x-f5xc-example": "EMAIL",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeSensitiveDataType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Sensitive data for a given API endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeSensitiveData",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "app_typeSensitiveDataDetectionRuleType": {
        "type": "string",
        "description": "Sensitive Data Detection Rule Type\n\n- RULE_TYPE_BUILT_IN: built_in\n\nBuilt in rule type\n- RULE_TYPE_CUSTOM: custom\n\nCustom rule type.",
        "title": "sensitive_data_detection_rule_type",
        "enum": [
          "RULE_TYPE_BUILT_IN",
          "RULE_TYPE_CUSTOM"
        ],
        "default": "RULE_TYPE_BUILT_IN",
        "x-displayname": "Sensitive Data Detection Rule Type.",
        "x-ves-proto-enum": "ves.io.schema.app_type.SensitiveDataDetectionRuleType",
        "x-f5xc-description-short": "Sensitive Data Detection Rule Type - RULE_TYPE_BUILT_IN: built_in Built in rule type - RULE_TYPE_CUSTOM: custom Custom rule type.",
        "x-f5xc-description-medium": "Sensitive Data Detection Rule Type - RULE_TYPE_BUILT_IN: built_in Built in rule type - RULE_TYPE_CUSTOM: custom Custom rule type.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for app_typeSensitiveDataDetectionRuleType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"RULE_TYPE_BUILT_IN\"",
          "example_yaml": "RULE_TYPE_BUILT_IN\n..."
        },
        "x-f5xc-cli-domain": "service_mesh",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "App type definition is platform-level"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "authenticationCookieParams": {
        "type": "object",
        "description": "Specifies different cookie related config parameters for authentication.",
        "title": "Cookie Parameters Config",
        "x-displayname": "Cookie Parameters.",
        "x-ves-oneof-field-secret_choice": "[\"auth_hmac\",\"kms_key_hmac\"]",
        "x-ves-proto-message": "ves.io.schema.authentication.CookieParams",
        "properties": {
          "auth_hmac": {
            "allOf": [
              {
                "$ref": "#/components/schemas/authenticationHMACKeyPair"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "kms_key_hmac"
            ]
          },
          "cookie_expiry": {
            "type": "integer",
            "description": "Specifies in seconds max duration of the allocated cookie. This maps to “Max-Age” attribute in the session cookie.\nThis will act as an expiry duration on the client side after which client will not be setting the\ncookie as part of the request.\nDefault cookie expiry is 3600 seconds.",
            "title": "cookie expiry",
            "format": "int64",
            "x-displayname": "Cookie Expiry duration.",
            "x-ves-example": "5000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-example": "5000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-description-short": "Specifies in seconds max duration of the allocated cookie. This maps to “Max-Age” attribute in the session cookie.",
            "x-f5xc-description-medium": "Specifies in seconds max duration of the allocated cookie. This maps to “Max-Age” attribute in the session cookie. This will act as an expiry duration on the client side after which client will not be setting the cookie as part of the request.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 86400,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "cookie_refresh_interval": {
            "type": "integer",
            "description": "Specifies in seconds refresh interval for session cookie.\nThis is used to keep the active user active and reduce RE-login.\nWhen an incoming cookie's session expiry is still valid, and time to expire falls behind this interval,\nRE-issue a cookie with new expiry and with the same original session expiry.\nDefault refresh interval is 3000 seconds.",
            "title": "cookie refresh interval",
            "format": "int64",
            "x-displayname": "Cookie Refresh Interval.",
            "x-ves-example": "3600",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-example": "3600",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "86400"
            },
            "x-f5xc-description-short": "Specifies in seconds refresh interval for session cookie. This is used to keep the active user active and reduce RE-login.",
            "x-f5xc-description-medium": "Specifies in seconds refresh interval for session cookie. This is used to keep the active user active and reduce RE-login. When an incoming cookie's session expiry is still valid, and time to expire falls behind this interval, RE-issue a cookie with new expiry and with the same original session...",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 86400,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "kms_key_hmac": {
            "allOf": [
              {
                "$ref": "#/components/schemas/authenticationKMSKeyRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for kms key hmac.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "auth_hmac"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "kms_key_hmac",
                "gated_by": {
                  "choice": "secret_choice"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "session_expiry": {
            "type": "integer",
            "description": "Specifies in seconds max lifetime of an authenticated session after which the user will be forced to login again.\nDefault session expiry is 86400 seconds(24 hours).",
            "title": "session expiry",
            "format": "int64",
            "x-displayname": "Session Expiry duration.",
            "x-ves-example": "36000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1296000"
            },
            "x-f5xc-example": "36000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "1296000"
            },
            "x-f5xc-description-short": "Specifies in seconds max lifetime of an authenticated session after which the user will be forced to login again.",
            "x-f5xc-description-medium": "Specifies in seconds max lifetime of an authenticated session after which the user will be forced to login again. Default session expiry is 86400 seconds(24 hours).",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 1296000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Specifies different cookie related config parameters for authentication.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for authenticationCookieParams",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "tenant_and_identity",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "authenticationHMACKeyPair": {
        "type": "object",
        "description": "HMAC primary and secondary keys to be used for hashing the Cookie.\nEach key also have an associated expiry timestamp, beyond which key is invalid.",
        "title": "HMAC Key Pair",
        "x-displayname": "HMAC Key Pair.",
        "x-ves-proto-message": "ves.io.schema.authentication.HMACKeyPair",
        "properties": {
          "prim_key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "prim_key_expiry": {
            "type": "string",
            "description": "Primary HMAC Key Expiry time.",
            "title": "HMAC Primary Key Expiry Time",
            "format": "date-time",
            "x-displayname": "HMAC Primary Key Expiry.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "sec_key": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sec_key_expiry": {
            "type": "string",
            "description": "Secondary HMAC Key Expiry time.",
            "title": "HMAC Secondary Key Expiry Time",
            "format": "date-time",
            "x-displayname": "HMAC Secondary Key Expiry.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "HMAC primary and secondary keys to be used for hashing the Cookie. Each key also have an associated expiry timestamp, beyond which key is invalid.",
        "x-f5xc-description-medium": "HMAC primary and secondary keys to be used for hashing the Cookie. Each key also have an associated expiry timestamp, beyond which key is invalid.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for authenticationHMACKeyPair",
          "required_fields": [
            "prim_key_expiry",
            "sec_key_expiry"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"prim_key_expiry\": \"value\",\n  \"sec_key_expiry\": \"{\\\"key\\\": \\\"value\\\"}\"\n}",
          "example_yaml": "prim_key_expiry: value\nsec_key_expiry: '{\"key\": \"value\"}'"
        },
        "x-f5xc-cli-domain": "tenant_and_identity",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "authenticationKMSKeyRefType": {
        "type": "object",
        "description": "Reference to KMS Key Object.",
        "title": "KMS Key Ref",
        "x-displayname": "KMS Key Reference.",
        "x-ves-proto-message": "ves.io.schema.authentication.KMSKeyRefType",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for authenticationKMSKeyRefType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "tenant_and_identity",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Standard tenant resource"
          },
          "classification": {
            "category": "application",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "ioschemaDownstreamTlsParamsType": {
        "type": "object",
        "description": "TLS configuration for downstream connections.",
        "title": "DownstreamTlsParamsType",
        "x-displayname": "Downstream TLS Parameters.",
        "x-ves-oneof-field-client_certificate_verify_choice": "[\"client_certificate_optional\",\"client_certificate_required\",\"no_client_certificate\"]",
        "x-ves-proto-message": "ves.io.schema.DownstreamTlsParamsType",
        "properties": {
          "client_certificate_optional": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_certificate_required",
              "no_client_certificate"
            ]
          },
          "client_certificate_required": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_certificate_optional",
              "no_client_certificate"
            ]
          },
          "common_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsParamsType__ves_io_schema_virtual_host"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for common params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "no_client_certificate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_certificate_optional",
              "client_certificate_required"
            ]
          },
          "xfcc_header_elements": {
            "type": "array",
            "description": "X-Forwarded-Client-Cert header elements to be set in an mTLS enabled connections.\nIf none are defined, the header will not be added.",
            "title": "XFCC Header",
            "items": {
              "$ref": "#/components/schemas/schemaXfccElement"
            },
            "x-displayname": "XFCC Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "X-Forwarded-Client-Cert header elements to be set in an mTLS enabled connections.",
            "x-f5xc-description-medium": "X-Forwarded-Client-Cert header elements to be set in an mTLS enabled connections. If none are defined, the header will not be added.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "TLS configuration for downstream connections.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ioschemaDownstreamTlsParamsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaAppFirewallRefType": {
        "type": "object",
        "description": "A list of references to the app_firewall configuration objects.",
        "title": "AppFirewallRefType",
        "x-displayname": "App Firewall Reference.",
        "x-ves-proto-message": "ves.io.schema.AppFirewallRefType",
        "properties": {
          "app_firewall": {
            "type": "array",
            "description": "References to an Application Firewall configuration object.",
            "title": "app_firewall",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Application Firewall.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.num_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.num_items": "1"
            },
            "x-f5xc-description-short": "References to an Application Firewall configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "List of references to the app_firewall configuration objects.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaAppFirewallRefType",
          "required_fields": [
            "app_firewall"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"app_firewall\": [\n    {}\n  ]\n}",
          "example_yaml": "app_firewall:\n- {}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaCertificateParamsType": {
        "type": "object",
        "description": "Certificate Parameters for authentication, TLS ciphers, and trust store.",
        "title": "CertificateParamsType",
        "x-displayname": "Certificate Parameters.",
        "x-ves-displayorder": "1,2,3,4,5",
        "x-ves-oneof-field-client_certificate_verify_choice": "[\"client_certificate_optional\",\"client_certificate_required\",\"no_client_certificate\"]",
        "x-ves-proto-message": "ves.io.schema.CertificateParamsType",
        "properties": {
          "certificates": {
            "type": "array",
            "description": "Set of certificates.",
            "title": "certificates",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Certificates.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "32",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "32",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "cipher_suites": {
            "type": "array",
            "description": "The following list specifies the supported cipher suite\nTLS_AES_128_GCM_SHA256\nTLS_AES_256_GCM_SHA384\nTLS_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_128_CBC_SHA\nTLS_RSA_WITH_AES_128_GCM_SHA256\nTLS_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_256_GCM_SHA384\n\nIf not specified, the default list:\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nwill be used.",
            "title": "cipher_suites",
            "items": {
              "type": "string"
            },
            "x-displayname": "Cipher Suites.",
            "x-ves-example": "TLS_AES_128_GCM_SHA256.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "TLS_AES_128_GCM_SHA256",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256...",
            "x-f5xc-description-medium": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "client_certificate_optional": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_certificate_required",
              "no_client_certificate"
            ]
          },
          "client_certificate_required": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_certificate_optional",
              "no_client_certificate"
            ]
          },
          "maximum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "minimum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "no_client_certificate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "client_certificate_optional",
              "client_certificate_required"
            ]
          },
          "validation_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsValidationParamsType__ves_io_schema_virtual_host"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "xfcc_header_elements": {
            "type": "array",
            "description": "X-Forwarded-Client-Cert header elements to be set in an mTLS enabled connections.\nIf none are defined, the header will not be added.",
            "title": "XFCC Header",
            "items": {
              "$ref": "#/components/schemas/schemaXfccElement"
            },
            "x-displayname": "XFCC Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.enum.defined_only": "true",
              "ves.io.schema.rules.repeated.items.enum.not_in": "[0]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "X-Forwarded-Client-Cert header elements to be set in an mTLS enabled connections.",
            "x-f5xc-description-medium": "X-Forwarded-Client-Cert header elements to be set in an mTLS enabled connections. If none are defined, the header will not be added.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Certificate Parameters for authentication, TLS ciphers, and trust store.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaCertificateParamsType",
          "required_fields": [
            "certificates"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"certificates\": [\n    {}\n  ]\n}",
          "example_yaml": "certificates:\n- {}"
        },
        "x-f5xc-cli-domain": "certificates",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "custom",
            "alternatives": [],
            "rationale": "Certificates can be managed in any namespace"
          },
          "classification": {
            "category": "certificate",
            "multi_tenant_pattern": "per-tenant"
          }
        }
      },
      "schemaHttpResponseCodeClass": {
        "type": "string",
        "description": "Represents different HTTP response classes(e.g 1XX, 2XX etc).\n\nResponse code is unknown.\nResponse code belongs to 1XX class.\nResponse code belongs to 2XX class.\nResponse code belongs to 3XX class.\nResponse code belongs to 4XX class.\nResponse code belongs to 5XX class.",
        "title": "HttpResponseCodeClass",
        "enum": [
          "HTTP_RESPONSE_CODE_CLASS_UNKNOWN",
          "HTTP_RESPONSE_CODE_CLASS_1XX",
          "HTTP_RESPONSE_CODE_CLASS_2XX",
          "HTTP_RESPONSE_CODE_CLASS_3XX",
          "HTTP_RESPONSE_CODE_CLASS_4XX",
          "HTTP_RESPONSE_CODE_CLASS_5XX"
        ],
        "default": "HTTP_RESPONSE_CODE_CLASS_UNKNOWN",
        "x-displayname": "HTTP Response Code Class.",
        "x-ves-proto-enum": "ves.io.schema.HttpResponseCodeClass",
        "x-f5xc-description-short": "Represents different HTTP response classes(e.g 1XX, 2XX etc). Response code is unknown.",
        "x-f5xc-description-medium": "Represents different HTTP response classes(e.g 1XX, 2XX etc). Response code is unknown. Response code belongs to 1XX class. Response code belongs to 2XX class. Response code belongs to 3XX class.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaHttpResponseCodeClass",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"HTTP_RESPONSE_CODE_CLASS_UNKNOWN\"",
          "example_yaml": "HTTP_RESPONSE_CODE_CLASS_UNKNOWN\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaOwaspCategory": {
        "type": "object",
        "description": "Represents a category of vulnerability as defined in the OWASP API Top 10.",
        "title": "OWASP Category",
        "x-displayname": "OWASP Category.",
        "x-ves-proto-message": "ves.io.schema.OwaspCategory",
        "properties": {
          "link_to_owasp": {
            "type": "string",
            "description": "Link to the OWASP documentation for this category.",
            "title": "OWASP reference link",
            "x-displayname": "OWASP Reference Link.",
            "x-ves-example": "https://owasp.org/API-Security/editions/2023/en/0xa1-broken-object-level-authorization/.",
            "x-f5xc-example": "https://owasp.org/API-Security/editions/2023/en/0xa1-broken-object-level-authorization/",
            "x-f5xc-description-short": "Link to the OWASP documentation for this category.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the OWASP API security category.",
            "title": "Category name",
            "x-displayname": "Category Name.",
            "x-ves-example": "API1:2023",
            "x-f5xc-example": "API1:2023",
            "x-f5xc-description-short": "The name of the OWASP API security category.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Represents a category of vulnerability as defined in the OWASP API Top 10.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaOwaspCategory",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTlsParamsType__ves_io_schema_virtual_host": {
        "type": "object",
        "description": "Information of different aspects for TLS authentication related to ciphers,\ncertificates and trust store.",
        "title": "TlsParamsType",
        "x-displayname": "TLS Parameters.",
        "x-ves-displayorder": "4,7,1,2,3",
        "x-ves-proto-message": "ves.io.schema.TlsParamsType",
        "properties": {
          "cipher_suites": {
            "type": "array",
            "description": "The following list specifies the supported cipher suite\nTLS_AES_128_GCM_SHA256\nTLS_AES_256_GCM_SHA384\nTLS_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\nTLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_128_CBC_SHA\nTLS_RSA_WITH_AES_128_GCM_SHA256\nTLS_RSA_WITH_AES_256_CBC_SHA\nTLS_RSA_WITH_AES_256_GCM_SHA384\n\nIf not specified, the default list:\nTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\nTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\nTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\nTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\nwill be used.",
            "title": "cipher_suites",
            "items": {
              "type": "string"
            },
            "x-displayname": "Cipher Suites.",
            "x-ves-example": "TLS_AES_128_GCM_SHA256.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "TLS_AES_128_GCM_SHA256",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.in": "[\\\"TLS_AES_128_GCM_SHA256\\\",\\\"TLS_AES_256_GCM_SHA384\\\",\\\"TLS_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384\\\",\\\"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_128_GCM_SHA256\\\",\\\"TLS_RSA_WITH_AES_256_CBC_SHA\\\",\\\"TLS_RSA_WITH_AES_256_GCM_SHA384\\\"]",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256...",
            "x-f5xc-description-medium": "The following list specifies the supported cipher suite TLS_AES_128_GCM_SHA256 TLS_AES_256_GCM_SHA384 TLS_CHACHA20_POLY1305_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256...",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "maximum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "minimum_protocol_version": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsProtocol"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_certificates": {
            "type": "array",
            "description": "Set of TLS certificates.",
            "title": "tls_certificates",
            "items": {
              "$ref": "#/components/schemas/schemaTlsCertificateType"
            },
            "x-displayname": "TLS Certificates.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "validation_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTlsValidationParamsType__ves_io_schema_virtual_host"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for validation params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Information of different aspects for TLS authentication related to ciphers, certificates and trust store.",
        "x-f5xc-description-medium": "Information of different aspects for TLS authentication related to ciphers, certificates and trust store.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsParamsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTlsValidationParamsType__ves_io_schema_virtual_host": {
        "type": "object",
        "description": "This includes URL for a trust store, whether SAN verification is required\nand list of Subject Alt Names for verification.",
        "title": "TlsValidationParamsType",
        "x-displayname": "TLS Certificate Validation Parameters.",
        "x-ves-oneof-field-trusted_ca_choice": "[\"trusted_ca\",\"trusted_ca_url\"]",
        "x-ves-proto-message": "ves.io.schema.TlsValidationParamsType",
        "properties": {
          "skip_hostname_verification": {
            "type": "boolean",
            "description": "When True, skip verification of hostname i.e. CN/Subject Alt Name of certificate\nis not matched to the connecting hostname.",
            "title": "skip_hostname_verification",
            "format": "boolean",
            "x-displayname": "Skip verification of hostname.",
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "When True, skip verification of hostname i.e. CN/Subject Alt Name of certificate is not matched to the connecting hostname.",
            "x-f5xc-description-medium": "When True, skip verification of hostname i.e. CN/Subject Alt Name of certificate is not matched to the connecting hostname.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "trusted_ca": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTrustedCAList__ves_io_schema_virtual_host"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca_url"
            ]
          },
          "trusted_ca_url": {
            "type": "string",
            "description": "Exclusive with [trusted_ca]\nInline Root CA Certificate.",
            "title": "trusted_ca_url",
            "maxLength": 131072,
            "x-displayname": "Inline Root CA Certificate (legacy)",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "131072",
              "ves.io.schema.rules.string.truststore_url": "true"
            },
            "x-f5xc-description-short": "Exclusive with [trusted_ca] Inline Root CA Certificate.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 131072,
              "byteLength": {
                "max": 131072
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "trusted_ca"
            ]
          },
          "verify_subject_alt_names": {
            "type": "array",
            "description": "List of acceptable Subject Alt Names/CN in the peer's certificate.\nWhen skip_hostname_verification is false and verify_subject_alt_names is empty,\nthe hostname of the peer will be used for matching against SAN/CN of peer's certificate.",
            "title": "verify_subject_alt_names",
            "items": {
              "type": "string"
            },
            "x-displayname": "List of SANs for matching.",
            "x-ves-example": "Value",
            "x-f5xc-example": "value",
            "x-f5xc-description-short": "List of acceptable Subject Alt Names/CN in the peer's certificate.",
            "x-f5xc-description-medium": "List of acceptable Subject Alt Names/CN in the peer's certificate. When skip_hostname_verification is false and verify_subject_alt_names is empty, the hostname of the peer will be used for matching against SAN/CN of peer's certificate.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Includes URL for a trust store, whether SAN verification is required and list of Subject Alt Names for verification.",
        "x-f5xc-description-medium": "Includes URL for a trust store, whether SAN verification is required and list of Subject Alt Names for verification.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTlsValidationParamsType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaTrustedCAList__ves_io_schema_virtual_host": {
        "type": "object",
        "description": "Reference to Root CA Certificate.",
        "title": "Root CA Certificate",
        "x-displayname": "Root CA Certificate Reference.",
        "x-ves-proto-message": "ves.io.schema.TrustedCAList",
        "properties": {
          "trusted_ca_list": {
            "type": "array",
            "description": "Reference to Root CA Certificate.",
            "title": "Root CA Certificate",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Root CA Certificate Reference.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaTrustedCAList",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Trust anchors should be centralized for consistent TLS validation"
          },
          "classification": {
            "category": "certificate",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemaVirtualNetworkType": {
        "type": "string",
        "description": "Different types of virtual networks understood by the system\n\nVirtual-network of type VIRTUAL_NETWORK_SITE_LOCAL provides connectivity to public (outside) network.\nThis is an insecure network and is connected to public internet via NAT Gateways/firwalls\nVirtual-network of this type is local to every site. Two virtual networks of this type on different\nsites are neither related nor connected.\n\nConstraints:\nThere can be atmost one virtual network of this type in a given site.\nThis network type is supported on CE sites. This network is created automatically and present on all sites\nVirtual-network of type VIRTUAL_NETWORK_SITE_LOCAL_INSIDE is a private network inside site.\nIt is a secure network and is not connected to public network.\nVirtual-network of this type is local to every site. Two virtual networks of this type on different\nsites are neither related nor connected.\n\nConstraints:\nThere can be atmost one virtual network of this type in a given site.\nThis network type is supported on CE sites. This network is created during provisioning of site\nUser defined per-site virtual network. Scope of this virtual network is limited to the site.\nThis is not yet supported\nVirtual-network of type VIRTUAL_NETWORK_PUBLIC directly connects to the public internet.\nVirtual-network of this type is local to every site. Two virtual networks of this type on different sites are neither related nor connected.\n\nConstraints:\nThere can be atmost one virtual network of this type in a given site.\nThis network type is supported on RE sites only\nIt is an internally created by the system. They must not be created by user\nVirtual Networks with global scope across different sites in F5XC domain.\nAn example global virtual-network called \"AIN Network\" is created for every tenant.\nFor F5 Distributed Cloud fabric\n\nConstraints:\nIt is currently only supported as internally created by the system.\nVK8s service network for a given tenant. Used to advertise a virtual host only to vk8s pods for that tenant\nConstraints:\nIt is an internally created by the system. Must not be created by user\nVER internal network for the site. It can only be used for virtual hosts with SMA_PROXY type proxy\nConstraints:\nIt is an internally created by the system. Must not be created by user\nVirtual-network of type VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE represents both\nVIRTUAL_NETWORK_SITE_LOCAL and VIRTUAL_NETWORK_SITE_LOCAL_INSIDE\n\nConstraints:\nThis network type is only meaningful in an advertise policy\nWhen virtual-network of type VIRTUAL_NETWORK_IP_AUTO is selected for\nan endpoint, VER will try to determine the network based on the provided\nIP address\n\nConstraints:\nThis network type is only meaningful in an endpoint\n\nVoltADN Private Network is used on F5 Distributed Cloud RE(s) to connect to customer private networks\nThis network is created by opening a support ticket\n\nThis network is per site srv6 network\nVER IP Fabric network for the site.\nThis Virtual network type is used for exposing virtual host on IP Fabric network on the VER site or\nfor endpoint in IP Fabric network\nConstraints:\nIt is an internally created by the system. Must not be created by user\nNetwork internally created for a segment\nConstraints:\nIt is an internally created by the system. Must not be created by user\nVirtual-network of type VIRTUAL_NETWORK_MANAGEMENT is used for management purposes.",
        "title": "VirtualNetworkType",
        "enum": [
          "VIRTUAL_NETWORK_SITE_LOCAL",
          "VIRTUAL_NETWORK_SITE_LOCAL_INSIDE",
          "VIRTUAL_NETWORK_PER_SITE",
          "VIRTUAL_NETWORK_PUBLIC",
          "VIRTUAL_NETWORK_GLOBAL",
          "VIRTUAL_NETWORK_SITE_SERVICE",
          "VIRTUAL_NETWORK_VER_INTERNAL",
          "VIRTUAL_NETWORK_SITE_LOCAL_INSIDE_OUTSIDE",
          "VIRTUAL_NETWORK_IP_AUTO",
          "VIRTUAL_NETWORK_VOLTADN_PRIVATE_NETWORK",
          "VIRTUAL_NETWORK_SRV6_NETWORK",
          "VIRTUAL_NETWORK_IP_FABRIC",
          "VIRTUAL_NETWORK_SEGMENT",
          "VIRTUAL_NETWORK_MANAGEMENT"
        ],
        "default": "VIRTUAL_NETWORK_SITE_LOCAL",
        "x-displayname": "Virtual Network Type.",
        "x-ves-proto-enum": "ves.io.schema.VirtualNetworkType",
        "x-f5xc-description-short": "Different types of virtual networks understood by the system Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL provides connectivity to public...",
        "x-f5xc-description-medium": "Different types of virtual networks understood by the system Virtual-network of type VIRTUAL_NETWORK_SITE_LOCAL provides connectivity to public (outside) network. This is an insecure network and is connected to public internet via NAT Gateways/firwalls Virtual-network of this type is local to...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaVirtualNetworkType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"VIRTUAL_NETWORK_SITE_LOCAL\"",
          "example_yaml": "VIRTUAL_NETWORK_SITE_LOCAL\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual network is platform-level infrastructure"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemaWafType": {
        "type": "object",
        "description": "WAF instance will be pointing to an app_firewall object.",
        "title": "WafType",
        "x-displayname": "WAF Instance.",
        "x-ves-oneof-field-ref_type": "[\"app_firewall\",\"disable_waf\",\"inherit_waf\"]",
        "x-ves-proto-message": "ves.io.schema.WafType",
        "properties": {
          "app_firewall": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaAppFirewallRefType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for app firewall.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_waf",
              "inherit_waf"
            ],
            "x-f5xc-references": [
              {
                "resource_kind": "app_firewall",
                "field_path": "app_firewall",
                "gated_by": {
                  "choice": "ref_type"
                },
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "disable_waf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for disable waf.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall",
              "inherit_waf"
            ]
          },
          "inherit_waf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for inherit waf.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "app_firewall",
              "disable_waf"
            ]
          }
        },
        "x-f5xc-description-short": "WAF instance will be pointing to an app_firewall object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemaWafType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemavirtual_hostAPIEndpoint": {
        "type": "object",
        "description": "APIEndpoint Object.",
        "title": "APIEndpoint",
        "x-displayname": "API Endpoint.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEndpoint",
        "properties": {
          "collapsed_url": {
            "type": "string",
            "description": "Requested API endPoint for API URL.",
            "title": "API URL",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "API URL",
            "x-ves-example": "API/v1/user_id/DYN/vehicle_id/DYN.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-example": "api/v1/user_id/DYN/vehicle_id/DYN",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method": {
            "type": "string",
            "description": "Requested API endPoint for method.",
            "title": "Method of current API URL",
            "x-displayname": "Method",
            "x-ves-example": "GET",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"GET\\\", \\\"POST\\\", \\\"HEAD\\\", \\\"PUT\\\", \\\"DELETE\\\", \\\"OPTIONS\\\", \\\"REGISTER\\\", \\\"DEBUG\\\", \\\"PROPFIND\\\", \\\"PATCH\\\", \\\"CONNECT\\\", \\\"SEARCH\\\", \\\"INDEX\\\", \\\"TRACE\\\"]"
            },
            "x-f5xc-example": "GET",
            "x-validation-rules": {
              "ves.io.schema.rules.string.in": "[\\\"GET\\\", \\\"POST\\\", \\\"HEAD\\\", \\\"PUT\\\", \\\"DELETE\\\", \\\"OPTIONS\\\", \\\"REGISTER\\\", \\\"DEBUG\\\", \\\"PROPFIND\\\", \\\"PATCH\\\", \\\"CONNECT\\\", \\\"SEARCH\\\", \\\"INDEX\\\", \\\"TRACE\\\"]"
            },
            "maxLength": 1024,
            "enum": [
              "GET",
              "POST",
              "HEAD",
              "PUT",
              "DELETE",
              "OPTIONS",
              "REGISTER",
              "DEBUG",
              "PROPFIND",
              "PATCH",
              "CONNECT",
              "SEARCH",
              "INDEX",
              "TRACE"
            ],
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemavirtual_hostAPIEndpoint",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemavirtual_hostCreateSpecType": {
        "type": "object",
        "description": "Creates virtual host in a given namespace.",
        "title": "Create virtual host",
        "x-displayname": "Create Virtual Host.",
        "x-ves-displayorder": "15,2,3,5,85,18,19,38,6,17,7,8,100,101,102,103,12,13,20,28,21,22,33,23,30,35,27,25,32,34,76,79,82,111",
        "x-ves-oneof-field-authentication_choice": "[\"authentication\",\"no_authentication\"]",
        "x-ves-oneof-field-challenge_type": "[\"captcha_challenge\",\"js_challenge\",\"no_challenge\"]",
        "x-ves-oneof-field-default_lb_choice": "[\"default_loadbalancer\",\"non_default_loadbalancer\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-path_normalize_choice": "[\"disable_path_normalize\",\"enable_path_normalize\"]",
        "x-ves-oneof-field-server_header_choice": "[\"append_server_name\",\"default_header\",\"pass_through\",\"server_name\"]",
        "x-ves-oneof-field-strict_sni_host_header_check_choice": "[]",
        "x-ves-oneof-field-tls_certificates_choice": "[\"tls_cert_params\",\"tls_parameters\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CreateSpecType",
        "properties": {
          "add_location": {
            "type": "boolean",
            "description": "X-example: true\nAppends header x-F5 Distributed Cloud-location = <RE-site-name> in responses. This configuration\nis ignored on CE sites.",
            "format": "boolean",
            "x-displayname": "Add Location.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "advertise_policies": {
            "type": "array",
            "description": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised.\nEach Policy rule can have different parameters, like TLS configuration, ports, optionally IP address to be used for VIP.\nIf advertise policy is not specified then no VIP is assigned for this virtual host.",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Advertise Policies.",
            "x-f5xc-description-short": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised.",
            "x-f5xc-description-medium": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised. Each Policy rule can have different parameters, like TLS configuration, ports, optionally IP address to be used for VIP. If advertise policy is not specified then no VIP is...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "append_server_name": {
            "type": "string",
            "description": "Exclusive with [default_header pass_through server_name]\nSpecifies the value to be used for Server header if it is not already present.\nIf Server Header is already present it is not overwritten. It is just passed.",
            "maxLength": 8096,
            "x-displayname": "Append Server Name if absent.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [default_header pass_through server_name] Specifies the value to be used for Server header if it is not already present.",
            "x-f5xc-description-medium": "Exclusive with [default_header pass_through server_name] Specifies the value to be used for Server header if it is not already present. If Server Header is already present it is not overwritten. It is just passed.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_header",
              "pass_through",
              "server_name"
            ]
          },
          "authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAuthenticationDetails"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_authentication"
            ]
          },
          "buffer_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBufferConfigType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_challenge",
              "no_challenge"
            ]
          },
          "coalescing_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTLSCoalescingOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for coalescing options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "compression_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCompressionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for compression params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "connection_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for downstream connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 2 minutes.",
            "format": "int64",
            "x-displayname": "Connection Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "cors_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCorsPolicy"
              }
            ],
            "x-f5xc-description-short": "Cross-Origin Resource Sharing policy for browser requests.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "csrf_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCsrfPolicy"
              }
            ],
            "x-f5xc-description-short": "Cross-Site Request Forgery protection configuration.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "custom_errors": {
            "type": "object",
            "description": "Map of integer error codes as keys and string values that can be used to provide custom\nHTTP pages for each error code.\nKey of the map can be either response code class or HTTP Error code. Response code classes\nfor key is configured as follows\n3 -- for 3xx response code class\n4 -- for 4xx response code class\n5 -- for 5xx response code class\nValue is the uri_ref. Currently supported URL schemes is string:///.\nFor string:/// scheme, message needs to be encoded in Base64 format.\nYou can specify this message as base64 encoded plain text message e.g. \"Access Denied\"\nor it can be HTML paragraph or a body string encoded as base64 string\nE.g. \"<p> Access Denied </p>\". Base64 encoded string for this HTML is \"PHA+IEFjY2VzcyBEZW5pZWQgPC9wPg==\"\nSpecific response code takes preference when both response code and response code class\nmatches for a request.\n\nThe configured custom errors are only applicable for loadbalancer generated errors.\nErrors returned from upstream server is propagated as is.\n\nF5XC provides default error pages for the errors generated by the loadbalancer. Content of\nthese pages are not editable. User has an option to disable the use of default F5XC error pages.",
            "x-displayname": "Custom Error Responses.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.gte": "3",
              "ves.io.schema.rules.map.keys.uint32.lte": "599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.gte": "3",
              "ves.io.schema.rules.map.keys.uint32.lte": "599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code.",
            "x-f5xc-description-medium": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code. Key of the map can be either response code class or HTTP Error code. Response code classes for key is configured as follows 3 -- for 3xx response code class 4 -- for 4xx...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "pass_through",
              "server_name"
            ]
          },
          "default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "non_default_loadbalancer"
            ]
          },
          "disable_default_error_pages": {
            "type": "boolean",
            "description": "An option to specify whether to disable using default F5XC error pages.",
            "format": "boolean",
            "x-displayname": "Disable default error pages.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Option to specify whether to disable using default F5XC error pages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_dns_resolve": {
            "type": "boolean",
            "description": "Disable DNS resolution for domains specified in the virtual host\n\nWhen the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS resolution\nfor domains configured. This configuration is suitable for HTTP CONNECT proxy.",
            "format": "boolean",
            "x-displayname": "Disable DNS resolution.",
            "x-ves-example": "False",
            "x-f5xc-example": "false",
            "x-f5xc-description-short": "Disable DNS resolution for domains specified in the virtual host When the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS...",
            "x-f5xc-description-medium": "Disable DNS resolution for domains specified in the virtual host When the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS resolution for domains configured. This configuration is suitable for HTTP CONNECT proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_path_normalize"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to this Virtual Host.\nWildcard hosts are supported in the suffix or prefix form\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if the virtual host proxy type is TCP_PROXY_WITH_SNI/HTTPS_PROXY\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "maxItems": 33,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "33",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "33",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domain names matched to this virtual host.",
            "x-f5xc-description-medium": "List of domain names matched to this virtual host for routing incoming requests. Supports wildcard patterns like *.example.com for subdomain matching.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 33,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dynamic_reverse_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostDynamicReverseProxyType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for dynamic reverse proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_path_normalize"
            ]
          },
          "http_protocol_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostHttpProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "idle_timeout": {
            "type": "integer",
            "description": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with\nno upstream or downstream activity.\n\nIdle timeout and Proxy Type:\n\nHTTP_PROXY, HTTPS_PROXY:\nIdle timer is started when the first byte is received on the connection.\nEach time an encode/decode event for headers or data is processed for the stream,\nthe timer will be reset.\nIf the timeout fires, the stream is terminated with a 504 (Gateway Timeout) error code if\nno upstream response header has been received, otherwise a stream reset occurs.\nThe default idle timeout is 30 seconds\n\nTCP PROXY, TCP_PROXY_WITH_SNI, SMA_PROXY:\nThe idle timeout is defined as the period in which there are no bytes sent or received on\neither the upstream or downstream connection.\nThe default idle timeout is 1 hour.\n\nUDP PROXY:\nThe idle timeout for sessions. Idle timeout is defined as the period in which there are no\ndatagrams sent or received on the session.\nThe default if not specified is 1 minute.",
            "format": "int64",
            "x-displayname": "Idle timeout (in milliseconds)",
            "x-ves-example": "2000",
            "x-f5xc-example": "2000",
            "x-f5xc-description-short": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with no upstream or downstream activity.",
            "x-f5xc-description-medium": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with no upstream or downstream activity. Idle timeout and Proxy Type: HTTP_PROXY, HTTPS_PROXY: Idle timer is started when the first byte is received on the connection. Each time an encode/decode event for...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "JavaScript browser challenge for bot detection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "no_challenge"
            ]
          },
          "max_request_header_size": {
            "type": "integer",
            "description": "The maximum request header size in KiB for incoming connections.\n\nIf un-configured, the default max request headers allowed is 60 KiB.\n\nRequests that exceed this limit will receive a 431 response.\n\nThe max configurable limit is 96 KiB, based on current implementation constraints.\n\nNote:\na. This configuration parameter is applicable only for HTTP_PROXY and HTTPS_PROXY\nb. When multiple HTTP_PROXY virtual hosts share the same advertise policy, the effective\n\"maximum request header size\" for such virtual hosts is the highest value configured\non any of the virtual hosts.",
            "format": "int64",
            "x-displayname": "Maximum Request Header Size (KiB)",
            "x-ves-example": "42",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-example": "42",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-description-short": "The maximum request header size in KiB for incoming connections. If un-configured, the default max request headers allowed is 60 KiB.",
            "x-f5xc-description-medium": "The maximum request header size in KiB for incoming connections. If un-configured, the default max request headers allowed is 60 KiB. Requests that exceed this limit will receive a 431 response.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 96,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\nSets the maximum number of requests a downstream client can send\nover a single connection to Envoy.\nEnter a value >=1 to define the request limit per connection.",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "authentication"
            ]
          },
          "no_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "js_challenge"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "non_default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for non default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_loadbalancer"
            ]
          },
          "pass_through": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for pass through.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "server_name"
            ]
          },
          "proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rate_limiter_allowed_prefixes": {
            "type": "array",
            "description": "References to ip_prefix_set objects.\nRequests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Rate Limiter Allowed Prefixes.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-medium": "References to ip_prefix_set objects. Requests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_cookies_to_add": {
            "type": "array",
            "description": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaCookieValueOption"
            },
            "x-displayname": "Add Cookies in Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_cookies_to_remove": {
            "type": "array",
            "description": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Request Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP request being routed towards upstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Remove Request Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_add": {
            "type": "array",
            "description": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaSetCookieValueOption"
            },
            "x-displayname": "Add Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_remove": {
            "type": "array",
            "description": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of name of Cookies to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Response Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP response being sent towards downstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Remove Response Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retry_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRetryPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "routes": {
            "type": "array",
            "description": "The list of routes that will be matched, in order, for incoming requests.\nThe first route that matches will be used. Currently route object is redundant in case of TCP proxy but required.\nFor TCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY VirtualHosts, the route object only specifies the cluster/weighted-cluster\nas route destination without any match condition. In other words, match condition in route object is ignored for\nTCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY VirtualHosts. Routes used for TCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY\nVirtualHosts cannot have DirectResponse or Redirect as actions.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Routes",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-f5xc-description-short": "HTTP routing rules for matching requests to backends.",
            "x-f5xc-description-medium": "HTTP routing rules that match incoming requests based on path, headers, or query parameters and forward them to appropriate backend origin pools.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_policy": {
            "type": "array",
            "description": "References to sensitive_data_policy objects.",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Sensitive Data Discovery.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [append_server_name default_header pass_through]\nSpecifies the value to be used for Server header inserted in responses.\nThis will overwrite existing values if any for Server Header.",
            "maxLength": 8096,
            "x-displayname": "Server Name.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [append_server_name default_header pass_through] Specifies the value to be used for Server header inserted in responses.",
            "x-f5xc-description-medium": "Exclusive with [append_server_name default_header pass_through] Specifies the value to be used for Server header inserted in responses. This will overwrite existing values if any for Server Header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "pass_through"
            ]
          },
          "slow_ddos_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostSlowDDoSMitigation"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_cert_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCertificateParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls cert params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_parameters"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaDownstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_cert_params"
            ]
          },
          "user_identification": {
            "type": "array",
            "description": "A reference to user_identification object.\nThe rules in the user_identification object are evaluated to determine the user identifier to be rate limited.",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "User Identification Policy.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-description-short": "Reference to user_identification object.",
            "x-f5xc-description-medium": "Reference to user_identification object. The rules in the user_identification object are evaluated to determine the user identifier to be rate limited.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "waf_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaWafType"
              }
            ],
            "x-f5xc-description-short": "Web Application Firewall protection mode for this virtual host.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Creates virtual host in a given namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemavirtual_hostCreateSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemavirtual_hostGetSpecType": {
        "type": "object",
        "description": "GET virtual host from a given namespace.",
        "title": "Get virtual host",
        "x-displayname": "GET Virtual Host.",
        "x-ves-displayorder": "10,15,2,3,5,85,18,19,38,6,17,7,8,100,101,102,103,12,13,20,28,21,22,33,23,30,35,27,25,32,34,76,79,82,111",
        "x-ves-oneof-field-authentication_choice": "[\"authentication\",\"no_authentication\"]",
        "x-ves-oneof-field-challenge_type": "[\"captcha_challenge\",\"js_challenge\",\"no_challenge\"]",
        "x-ves-oneof-field-ddos_auto_mitigation_action": "[\"block\",\"ddos_js_challenge\",\"l7_ddos_action_default\",\"l7_ddos_captcha_challenge\"]",
        "x-ves-oneof-field-default_lb_choice": "[\"default_loadbalancer\",\"non_default_loadbalancer\"]",
        "x-ves-oneof-field-dns_zone_state_choice": "[\"not_ready\",\"ready\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-path_normalize_choice": "[\"disable_path_normalize\",\"enable_path_normalize\"]",
        "x-ves-oneof-field-server_header_choice": "[\"append_server_name\",\"default_header\",\"pass_through\",\"server_name\"]",
        "x-ves-oneof-field-strict_sni_host_header_check_choice": "[]",
        "x-ves-oneof-field-tls_certificates_choice": "[\"tls_cert_params\",\"tls_parameters\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetSpecType",
        "properties": {
          "add_location": {
            "type": "boolean",
            "description": "X-example: true\nAppends header x-F5 Distributed Cloud-location = <RE-site-name> in responses. This configuration\nis ignored on CE sites.",
            "format": "boolean",
            "x-displayname": "Add Location.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "advertise_policies": {
            "type": "array",
            "description": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised.\nEach Policy rule can have different parameters, like TLS configuration, ports, optionally IP address to be used for VIP.\nIf advertise policy is not specified then no VIP is assigned for this virtual host.",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Advertise Policies.",
            "x-f5xc-description-short": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised.",
            "x-f5xc-description-medium": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised. Each Policy rule can have different parameters, like TLS configuration, ports, optionally IP address to be used for VIP. If advertise policy is not specified then no VIP is...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "append_server_name": {
            "type": "string",
            "description": "Exclusive with [default_header pass_through server_name]\nSpecifies the value to be used for Server header if it is not already present.\nIf Server Header is already present it is not overwritten. It is just passed.",
            "maxLength": 8096,
            "x-displayname": "Append Server Name if absent.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [default_header pass_through server_name] Specifies the value to be used for Server header if it is not already present.",
            "x-f5xc-description-medium": "Exclusive with [default_header pass_through server_name] Specifies the value to be used for Server header if it is not already present. If Server Header is already present it is not overwritten. It is just passed.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_header",
              "pass_through",
              "server_name"
            ]
          },
          "authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAuthenticationDetails"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_authentication"
            ]
          },
          "auto_cert_error_msg": {
            "type": "string",
            "description": "Last encountered error message during certificate minting process.",
            "x-displayname": "Auto Cert Error Message.",
            "x-f5xc-description-short": "Last encountered error message during certificate minting process.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "auto_cert_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAutoCertInfoType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for auto cert info.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "block": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ddos_js_challenge",
              "l7_ddos_action_default",
              "l7_ddos_captcha_challenge"
            ]
          },
          "buffer_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBufferConfigType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_challenge",
              "no_challenge"
            ]
          },
          "cdn_service": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCdnServiceType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for cdn service.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "coalescing_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTLSCoalescingOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for coalescing options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "compression_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCompressionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for compression params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "connection_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for downstream connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 2 minutes.",
            "format": "int64",
            "x-displayname": "Connection Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "cors_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCorsPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "csrf_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCsrfPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "custom_errors": {
            "type": "object",
            "description": "Map of integer error codes as keys and string values that can be used to provide custom\nHTTP pages for each error code.\nKey of the map can be either response code class or HTTP Error code. Response code classes\nfor key is configured as follows\n3 -- for 3xx response code class\n4 -- for 4xx response code class\n5 -- for 5xx response code class\nValue is the uri_ref. Currently supported URL schemes is string:///.\nFor string:/// scheme, message needs to be encoded in Base64 format.\nYou can specify this message as base64 encoded plain text message e.g. \"Access Denied\"\nor it can be HTML paragraph or a body string encoded as base64 string\nE.g. \"<p> Access Denied </p>\". Base64 encoded string for this HTML is \"PHA+IEFjY2VzcyBEZW5pZWQgPC9wPg==\"\nSpecific response code takes preference when both response code and response code class\nmatches for a request.\n\nThe configured custom errors are only applicable for loadbalancer generated errors.\nErrors returned from upstream server is propagated as is.\n\nF5XC provides default error pages for the errors generated by the loadbalancer. Content of\nthese pages are not editable. User has an option to disable the use of default F5XC error pages.",
            "x-displayname": "Custom Error Responses.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.gte": "3",
              "ves.io.schema.rules.map.keys.uint32.lte": "599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.gte": "3",
              "ves.io.schema.rules.map.keys.uint32.lte": "599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code.",
            "x-f5xc-description-medium": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code. Key of the map can be either response code class or HTTP Error code. Response code classes for key is configured as follows 3 -- for 3xx response code class 4 -- for 4xx...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ddos_js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for ddos js challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "block",
              "l7_ddos_action_default",
              "l7_ddos_captcha_challenge"
            ]
          },
          "default_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "pass_through",
              "server_name"
            ]
          },
          "default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "non_default_loadbalancer"
            ]
          },
          "disable_default_error_pages": {
            "type": "boolean",
            "description": "An option to specify whether to disable using default F5XC error pages.",
            "format": "boolean",
            "x-displayname": "Disable default error pages.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Option to specify whether to disable using default F5XC error pages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_dns_resolve": {
            "type": "boolean",
            "description": "Disable DNS resolution for domains specified in the virtual host\n\nWhen the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS resolution\nfor domains configured. This configuration is suitable for HTTP CONNECT proxy.",
            "format": "boolean",
            "x-displayname": "Disable DNS resolution.",
            "x-ves-example": "False",
            "x-f5xc-example": "false",
            "x-f5xc-description-short": "Disable DNS resolution for domains specified in the virtual host When the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS...",
            "x-f5xc-description-medium": "Disable DNS resolution for domains specified in the virtual host When the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS resolution for domains configured. This configuration is suitable for HTTP CONNECT proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_path_normalize"
            ]
          },
          "dns_info": {
            "type": "array",
            "description": "DNS information for this virtual host.",
            "items": {
              "$ref": "#/components/schemas/virtual_host_dns_infoDnsInfo"
            },
            "x-displayname": "DNS Information.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to this Virtual Host.\nWildcard hosts are supported in the suffix or prefix form\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if the virtual host proxy type is TCP_PROXY_WITH_SNI/HTTPS_PROXY\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "maxItems": 33,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "33",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "33",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to this Virtual Host.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to this Virtual Host. Wildcard hosts are supported in the suffix or prefix form Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 33,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dynamic_reverse_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostDynamicReverseProxyType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for dynamic reverse proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_path_normalize"
            ]
          },
          "host_name": {
            "type": "string",
            "description": "Internally generated host name to be used for the virtual host.",
            "x-displayname": "Host Name",
            "x-ves-example": "VES-I/o-00000000-0000-4000-8000-9694d5ee0763.ac.vh.ves.I/O.",
            "x-f5xc-example": "ves-io-00000000-0000-4000-8000-9694d5ee0763.ac.vh.F5 XC",
            "x-f5xc-description-short": "Internally generated host name to be used for the virtual host.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "http_protocol_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostHttpProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "idle_timeout": {
            "type": "integer",
            "description": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with\nno upstream or downstream activity.\n\nIdle timeout and Proxy Type:\n\nHTTP_PROXY, HTTPS_PROXY:\nIdle timer is started when the first byte is received on the connection.\nEach time an encode/decode event for headers or data is processed for the stream,\nthe timer will be reset.\nIf the timeout fires, the stream is terminated with a 504 (Gateway Timeout) error code if\nno upstream response header has been received, otherwise a stream reset occurs.\nThe default idle timeout is 30 seconds\n\nTCP PROXY, TCP_PROXY_WITH_SNI, SMA_PROXY:\nThe idle timeout is defined as the period in which there are no bytes sent or received on\neither the upstream or downstream connection.\nThe default idle timeout is 1 hour.\n\nUDP PROXY:\nThe idle timeout for sessions. Idle timeout is defined as the period in which there are no\ndatagrams sent or received on the session.\nThe default if not specified is 1 minute.",
            "format": "int64",
            "x-displayname": "Idle timeout (in milliseconds)",
            "x-ves-example": "2000",
            "x-f5xc-example": "2000",
            "x-f5xc-description-short": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with no upstream or downstream activity.",
            "x-f5xc-description-medium": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with no upstream or downstream activity. Idle timeout and Proxy Type: HTTP_PROXY, HTTPS_PROXY: Idle timer is started when the first byte is received on the connection. Each time an encode/decode event for...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "no_challenge"
            ]
          },
          "l7_ddos_action_default": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "block",
              "ddos_js_challenge",
              "l7_ddos_captcha_challenge"
            ]
          },
          "l7_ddos_captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for l7 ddos captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "block",
              "ddos_js_challenge",
              "l7_ddos_action_default"
            ]
          },
          "max_request_header_size": {
            "type": "integer",
            "description": "The maximum request header size in KiB for incoming connections.\n\nIf un-configured, the default max request headers allowed is 60 KiB.\n\nRequests that exceed this limit will receive a 431 response.\n\nThe max configurable limit is 96 KiB, based on current implementation constraints.\n\nNote:\na. This configuration parameter is applicable only for HTTP_PROXY and HTTPS_PROXY\nb. When multiple HTTP_PROXY virtual hosts share the same advertise policy, the effective\n\"maximum request header size\" for such virtual hosts is the highest value configured\non any of the virtual hosts.",
            "format": "int64",
            "x-displayname": "Maximum Request Header Size (KiB)",
            "x-ves-example": "42",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-example": "42",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-description-short": "The maximum request header size in KiB for incoming connections. If un-configured, the default max request headers allowed is 60 KiB.",
            "x-f5xc-description-medium": "The maximum request header size in KiB for incoming connections. If un-configured, the default max request headers allowed is 60 KiB. Requests that exceed this limit will receive a 431 response.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 96,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\nSets the maximum number of requests a downstream client can send\nover a single connection to Envoy.\nEnter a value >=1 to define the request limit per connection.",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "authentication"
            ]
          },
          "no_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "js_challenge"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "non_default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for non default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_loadbalancer"
            ]
          },
          "not_ready": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ready"
            ]
          },
          "pass_through": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for pass through.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "server_name"
            ]
          },
          "proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rate_limiter_allowed_prefixes": {
            "type": "array",
            "description": "References to ip_prefix_set objects.\nRequests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Rate Limiter Allowed Prefixes.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-medium": "References to ip_prefix_set objects. Requests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ready": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Readiness status for traffic acceptance.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "not_ready"
            ]
          },
          "request_cookies_to_add": {
            "type": "array",
            "description": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaCookieValueOption"
            },
            "x-displayname": "Add Cookies in Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_cookies_to_remove": {
            "type": "array",
            "description": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Request Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP request being routed towards upstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Remove Request Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_add": {
            "type": "array",
            "description": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaSetCookieValueOption"
            },
            "x-displayname": "Add Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_remove": {
            "type": "array",
            "description": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of name of Cookies to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Response Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP response being sent towards downstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Remove Response Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retry_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRetryPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "routes": {
            "type": "array",
            "description": "The list of routes that will be matched, in order, for incoming requests.\nThe first route that matches will be used. Currently route object is redundant in case of TCP proxy but required.\nFor TCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY VirtualHosts, the route object only specifies the cluster/weighted-cluster\nas route destination without any match condition. In other words, match condition in route object is ignored for\nTCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY VirtualHosts. Routes used for TCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY\nVirtualHosts cannot have DirectResponse or Redirect as actions.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Routes",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-f5xc-description-short": "The list of routes that will be matched, in order, for incoming requests. The first route that matches will be used.",
            "x-f5xc-description-medium": "The list of routes that will be matched, in order, for incoming requests. The first route that matches will be used. Currently route object is redundant in case of TCP proxy but required.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_policy": {
            "type": "array",
            "description": "References to sensitive_data_policy objects.",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Sensitive Data Discovery.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [append_server_name default_header pass_through]\nSpecifies the value to be used for Server header inserted in responses.\nThis will overwrite existing values if any for Server Header.",
            "maxLength": 8096,
            "x-displayname": "Server Name.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [append_server_name default_header pass_through] Specifies the value to be used for Server header inserted in responses.",
            "x-f5xc-description-medium": "Exclusive with [append_server_name default_header pass_through] Specifies the value to be used for Server header inserted in responses. This will overwrite existing values if any for Server Header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "pass_through"
            ]
          },
          "slow_ddos_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostSlowDDoSMitigation"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVirtualHostState"
              }
            ],
            "x-f5xc-example": "running",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_cert_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCertificateParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls cert params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_parameters"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaDownstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_cert_params"
            ]
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVirtualHostType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "user_identification": {
            "type": "array",
            "description": "A reference to user_identification object.\nThe rules in the user_identification object are evaluated to determine the user identifier to be rate limited.",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "User Identification Policy.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-description-short": "Reference to user_identification object.",
            "x-f5xc-description-medium": "Reference to user_identification object. The rules in the user_identification object are evaluated to determine the user identifier to be rate limited.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "waf_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaWafType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "GET virtual host from a given namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemavirtual_hostGetSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemavirtual_hostReplaceSpecType": {
        "type": "object",
        "description": "Replace a given virtual host in a given namespace.",
        "title": "Replace virtual host",
        "x-displayname": "Replace Virtual Host.",
        "x-ves-displayorder": "15,2,3,5,85,18,19,38,6,17,7,8,100,101,102,103,12,13,20,28,21,22,33,23,30,35,27,25,32,34,76,79,82,111",
        "x-ves-oneof-field-authentication_choice": "[\"authentication\",\"no_authentication\"]",
        "x-ves-oneof-field-challenge_type": "[\"captcha_challenge\",\"js_challenge\",\"no_challenge\"]",
        "x-ves-oneof-field-default_lb_choice": "[\"default_loadbalancer\",\"non_default_loadbalancer\"]",
        "x-ves-oneof-field-max_requests_per_connection_choice": "[\"max_requests_per_connection\",\"no_request_limit_per_connection\"]",
        "x-ves-oneof-field-path_normalize_choice": "[\"disable_path_normalize\",\"enable_path_normalize\"]",
        "x-ves-oneof-field-server_header_choice": "[\"append_server_name\",\"default_header\",\"pass_through\",\"server_name\"]",
        "x-ves-oneof-field-strict_sni_host_header_check_choice": "[]",
        "x-ves-oneof-field-tls_certificates_choice": "[\"tls_cert_params\",\"tls_parameters\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.ReplaceSpecType",
        "properties": {
          "add_location": {
            "type": "boolean",
            "description": "X-example: true\nAppends header x-F5 Distributed Cloud-location = <RE-site-name> in responses. This configuration\nis ignored on CE sites.",
            "format": "boolean",
            "x-displayname": "Add Location.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "advertise_policies": {
            "type": "array",
            "description": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised.\nEach Policy rule can have different parameters, like TLS configuration, ports, optionally IP address to be used for VIP.\nIf advertise policy is not specified then no VIP is assigned for this virtual host.",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Advertise Policies.",
            "x-f5xc-description-short": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised.",
            "x-f5xc-description-medium": "Advertise Policy allows you to define networks or sites where you want a VIP for this virtual host to be advertised. Each Policy rule can have different parameters, like TLS configuration, ports, optionally IP address to be used for VIP. If advertise policy is not specified then no VIP is...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "append_server_name": {
            "type": "string",
            "description": "Exclusive with [default_header pass_through server_name]\nSpecifies the value to be used for Server header if it is not already present.\nIf Server Header is already present it is not overwritten. It is just passed.",
            "maxLength": 8096,
            "x-displayname": "Append Server Name if absent.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [default_header pass_through server_name] Specifies the value to be used for Server header if it is not already present.",
            "x-f5xc-description-medium": "Exclusive with [default_header pass_through server_name] Specifies the value to be used for Server header if it is not already present. If Server Header is already present it is not overwritten. It is just passed.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_header",
              "pass_through",
              "server_name"
            ]
          },
          "authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAuthenticationDetails"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_authentication"
            ]
          },
          "buffer_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaBufferConfigType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "captcha_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCaptchaChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for captcha challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "js_challenge",
              "no_challenge"
            ]
          },
          "coalescing_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaTLSCoalescingOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for coalescing options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "compression_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCompressionType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for compression params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "connection_idle_timeout": {
            "type": "integer",
            "description": "The idle timeout for downstream connections. The idle timeout is defined as the\nperiod in which there are no active requests. When the idle timeout is reached the connection\nwill be closed. Note that request based timeouts mean that HTTP/2 PINGs will not keep the connection alive.\nThis is specified in milliseconds. The default value is 2 minutes.",
            "format": "int64",
            "x-displayname": "Connection Idle Timeout.",
            "x-ves-example": "60000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "60000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests.",
            "x-f5xc-description-medium": "The idle timeout for downstream connections. The idle timeout is defined as the period in which there are no active requests. When the idle timeout is reached the connection will be closed.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "cors_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCorsPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "csrf_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCsrfPolicy"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "custom_errors": {
            "type": "object",
            "description": "Map of integer error codes as keys and string values that can be used to provide custom\nHTTP pages for each error code.\nKey of the map can be either response code class or HTTP Error code. Response code classes\nfor key is configured as follows\n3 -- for 3xx response code class\n4 -- for 4xx response code class\n5 -- for 5xx response code class\nValue is the uri_ref. Currently supported URL schemes is string:///.\nFor string:/// scheme, message needs to be encoded in Base64 format.\nYou can specify this message as base64 encoded plain text message e.g. \"Access Denied\"\nor it can be HTML paragraph or a body string encoded as base64 string\nE.g. \"<p> Access Denied </p>\". Base64 encoded string for this HTML is \"PHA+IEFjY2VzcyBEZW5pZWQgPC9wPg==\"\nSpecific response code takes preference when both response code and response code class\nmatches for a request.\n\nThe configured custom errors are only applicable for loadbalancer generated errors.\nErrors returned from upstream server is propagated as is.\n\nF5XC provides default error pages for the errors generated by the loadbalancer. Content of\nthese pages are not editable. User has an option to disable the use of default F5XC error pages.",
            "x-displayname": "Custom Error Responses.",
            "x-ves-example": "Value",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.gte": "3",
              "ves.io.schema.rules.map.keys.uint32.lte": "599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-example": "value",
            "x-validation-rules": {
              "ves.io.schema.rules.map.keys.uint32.gte": "3",
              "ves.io.schema.rules.map.keys.uint32.lte": "599",
              "ves.io.schema.rules.map.max_pairs": "16",
              "ves.io.schema.rules.map.values.string.max_len": "65536",
              "ves.io.schema.rules.map.values.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code.",
            "x-f5xc-description-medium": "Map of integer error codes as keys and string values that can be used to provide custom HTTP pages for each error code. Key of the map can be either response code class or HTTP Error code. Response code classes for key is configured as follows 3 -- for 3xx response code class 4 -- for 4xx...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "default_header": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default header.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "pass_through",
              "server_name"
            ]
          },
          "default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "non_default_loadbalancer"
            ]
          },
          "disable_default_error_pages": {
            "type": "boolean",
            "description": "An option to specify whether to disable using default F5XC error pages.",
            "format": "boolean",
            "x-displayname": "Disable default error pages.",
            "x-ves-example": "True",
            "x-f5xc-example": "true",
            "x-f5xc-description-short": "Option to specify whether to disable using default F5XC error pages.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_dns_resolve": {
            "type": "boolean",
            "description": "Disable DNS resolution for domains specified in the virtual host\n\nWhen the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS resolution\nfor domains configured. This configuration is suitable for HTTP CONNECT proxy.",
            "format": "boolean",
            "x-displayname": "Disable DNS resolution.",
            "x-ves-example": "False",
            "x-f5xc-example": "false",
            "x-f5xc-description-short": "Disable DNS resolution for domains specified in the virtual host When the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS...",
            "x-f5xc-description-medium": "Disable DNS resolution for domains specified in the virtual host When the virtual host is configured as Dynamive Resolve Proxy (DRP), disable DNS resolution for domains configured. This configuration is suitable for HTTP CONNECT proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "enable_path_normalize"
            ]
          },
          "domains": {
            "type": "array",
            "description": "A list of Domains (host/authority header) that will be matched to this Virtual Host.\nWildcard hosts are supported in the suffix or prefix form\n\nSupported Domains and search order:\n1. Exact Domain names: www.example.com.\n2. Domains starting with a Wildcard: *.example.com.\n\nNot supported Domains:\n- Just a Wildcard: *\n- A Wildcard and TLD with no root Domain: *.com.\n- A Wildcard not matching a whole DNS label.\nE.g. *.example.com and *.bar.example.com are valid Wildcards however *bar.example.com, *-bar.example.com, and bar*.example.com are all invalid.\n\nAdditional notes:\nA Wildcard will not match empty string.\nE.g. *.example.com will match bar.example.com and baz-bar.example.com but not .example.com.\nThe longest Wildcards match first.\nOnly a single virtual host in the entire route configuration can match on *.\nAlso a Domain must be unique across all virtual hosts within an advertise policy.\n\nDomains are also used for SNI matching if the virtual host proxy type is TCP_PROXY_WITH_SNI/HTTPS_PROXY\nDomains also indicate the list of names for which DNS resolution will be automatically resolved to IP addresses by the system.",
            "maxItems": 33,
            "items": {
              "type": "string"
            },
            "x-displayname": "Domains",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "33",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.vh_domain": "true",
              "ves.io.schema.rules.repeated.max_items": "33",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of Domains (host/authority header) that will be matched to this Virtual Host.",
            "x-f5xc-description-medium": "List of Domains (host/authority header) that will be matched to this Virtual Host. Wildcard hosts are supported in the suffix or prefix form Supported Domains and search order: 1. Exact Domain names: www.example.com. 2.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 33,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dynamic_reverse_proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostDynamicReverseProxyType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for dynamic reverse proxy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "enable_path_normalize": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "disable_path_normalize"
            ]
          },
          "http_protocol_options": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostHttpProtocolOptions"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for http protocol options.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "idle_timeout": {
            "type": "integer",
            "description": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with\nno upstream or downstream activity.\n\nIdle timeout and Proxy Type:\n\nHTTP_PROXY, HTTPS_PROXY:\nIdle timer is started when the first byte is received on the connection.\nEach time an encode/decode event for headers or data is processed for the stream,\nthe timer will be reset.\nIf the timeout fires, the stream is terminated with a 504 (Gateway Timeout) error code if\nno upstream response header has been received, otherwise a stream reset occurs.\nThe default idle timeout is 30 seconds\n\nTCP PROXY, TCP_PROXY_WITH_SNI, SMA_PROXY:\nThe idle timeout is defined as the period in which there are no bytes sent or received on\neither the upstream or downstream connection.\nThe default idle timeout is 1 hour.\n\nUDP PROXY:\nThe idle timeout for sessions. Idle timeout is defined as the period in which there are no\ndatagrams sent or received on the session.\nThe default if not specified is 1 minute.",
            "format": "int64",
            "x-displayname": "Idle timeout (in milliseconds)",
            "x-ves-example": "2000",
            "x-f5xc-example": "2000",
            "x-f5xc-description-short": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with no upstream or downstream activity.",
            "x-f5xc-description-medium": "Idle timeout is the amount of time that the loadbalancer will allow a stream to exist with no upstream or downstream activity. Idle timeout and Proxy Type: HTTP_PROXY, HTTPS_PROXY: Idle timer is started when the first byte is received on the connection. Each time an encode/decode event for...",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "js_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostJavascriptChallengeType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for js challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "no_challenge"
            ]
          },
          "max_request_header_size": {
            "type": "integer",
            "description": "The maximum request header size in KiB for incoming connections.\n\nIf un-configured, the default max request headers allowed is 60 KiB.\n\nRequests that exceed this limit will receive a 431 response.\n\nThe max configurable limit is 96 KiB, based on current implementation constraints.\n\nNote:\na. This configuration parameter is applicable only for HTTP_PROXY and HTTPS_PROXY\nb. When multiple HTTP_PROXY virtual hosts share the same advertise policy, the effective\n\"maximum request header size\" for such virtual hosts is the highest value configured\non any of the virtual hosts.",
            "format": "int64",
            "x-displayname": "Maximum Request Header Size (KiB)",
            "x-ves-example": "42",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-example": "42",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "96"
            },
            "x-f5xc-description-short": "The maximum request header size in KiB for incoming connections. If un-configured, the default max request headers allowed is 60 KiB.",
            "x-f5xc-description-medium": "The maximum request header size in KiB for incoming connections. If un-configured, the default max request headers allowed is 60 KiB. Requests that exceed this limit will receive a 431 response.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 96,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "max_requests_per_connection": {
            "type": "integer",
            "description": "Exclusive with [no_request_limit_per_connection]\nSets the maximum number of requests a downstream client can send\nover a single connection to Envoy.\nEnter a value >=1 to define the request limit per connection.",
            "format": "int64",
            "x-displayname": "Maximum Requests Per Connection.",
            "x-ves-example": "100",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-example": "100",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "1"
            },
            "x-f5xc-description-short": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy.",
            "x-f5xc-description-medium": "Exclusive with [no_request_limit_per_connection] Sets the maximum number of requests a downstream client can send over a single connection to Envoy. Enter a value >=1 to define the request limit per connection.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 1,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "no_request_limit_per_connection"
            ]
          },
          "no_authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "authentication"
            ]
          },
          "no_challenge": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no challenge.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "captcha_challenge",
              "js_challenge"
            ]
          },
          "no_request_limit_per_connection": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for no request limit per connection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "max_requests_per_connection"
            ]
          },
          "non_default_loadbalancer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for non default loadbalancer.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "default_loadbalancer"
            ]
          },
          "pass_through": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for pass through.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "server_name"
            ]
          },
          "proxy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostProxyType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rate_limiter_allowed_prefixes": {
            "type": "array",
            "description": "References to ip_prefix_set objects.\nRequests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "maxItems": 4,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Rate Limiter Allowed Prefixes.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "4"
            },
            "x-f5xc-description-medium": "References to ip_prefix_set objects. Requests from source IP addresses that are covered by one of the allowed IP Prefixes are not subjected to rate limiting.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 4,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_cookies_to_add": {
            "type": "array",
            "description": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaCookieValueOption"
            },
            "x-displayname": "Add Cookies in Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Cookies are key-value pairs to be added to HTTP request being routed towards upstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_cookies_to_remove": {
            "type": "array",
            "description": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Cookie Header.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Cookies to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Request Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP request being routed towards upstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP request being routed towards upstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "request_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Remove Request Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP request being sent towards upstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_add": {
            "type": "array",
            "description": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.\nCookies specified at this level are applied after cookies from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaSetCookieValueOption"
            },
            "x-displayname": "Add Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Cookies are name-value pairs along with optional attribute parameters to be added to HTTP response being sent towards downstream. Cookies specified at this level are applied after cookies from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_cookies_to_remove": {
            "type": "array",
            "description": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "maxItems": 32,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "Remove Cookies from Set-Cookie Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_bytes": "256",
              "ves.io.schema.rules.repeated.items.string.min_bytes": "1",
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of name of Cookies to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "List of name of Cookies to be removed from the HTTP response being sent towards downstream. Entire set-cookie header will be removed.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_add": {
            "type": "array",
            "description": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.\nHeaders specified at this level are applied after headers from matched Route are applied.",
            "maxItems": 32,
            "items": {
              "$ref": "#/components/schemas/schemaHeaderManipulationOptionType"
            },
            "x-displayname": "Add Response Headers.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "Headers are key-value pairs to be added to HTTP response being sent towards downstream.",
            "x-f5xc-description-medium": "Headers are key-value pairs to be added to HTTP response being sent towards downstream. Headers specified at this level are applied after headers from matched Route are applied.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "response_headers_to_remove": {
            "type": "array",
            "description": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "maxItems": 32,
            "items": {
              "type": "string"
            },
            "x-displayname": "Remove Response Headers.",
            "x-ves-example": "Host",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "host",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "32",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of keys of Headers to be removed from the HTTP response being sent towards downstream.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 32,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "retry_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaRetryPolicyType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "routes": {
            "type": "array",
            "description": "The list of routes that will be matched, in order, for incoming requests.\nThe first route that matches will be used. Currently route object is redundant in case of TCP proxy but required.\nFor TCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY VirtualHosts, the route object only specifies the cluster/weighted-cluster\nas route destination without any match condition. In other words, match condition in route object is ignored for\nTCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY VirtualHosts. Routes used for TCP_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY\nVirtualHosts cannot have DirectResponse or Redirect as actions.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Routes",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "256"
            },
            "x-f5xc-description-short": "The list of routes that will be matched, in order, for incoming requests. The first route that matches will be used.",
            "x-f5xc-description-medium": "The list of routes that will be matched, in order, for incoming requests. The first route that matches will be used. Currently route object is redundant in case of TCP proxy but required.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_policy": {
            "type": "array",
            "description": "References to sensitive_data_policy objects.",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Sensitive Data Discovery.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "server_name": {
            "type": "string",
            "description": "Exclusive with [append_server_name default_header pass_through]\nSpecifies the value to be used for Server header inserted in responses.\nThis will overwrite existing values if any for Server Header.",
            "maxLength": 8096,
            "x-displayname": "Server Name.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-description-short": "Exclusive with [append_server_name default_header pass_through] Specifies the value to be used for Server header inserted in responses.",
            "x-f5xc-description-medium": "Exclusive with [append_server_name default_header pass_through] Specifies the value to be used for Server header inserted in responses. This will overwrite existing values if any for Server Header.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "append_server_name",
              "default_header",
              "pass_through"
            ]
          },
          "slow_ddos_mitigation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostSlowDDoSMitigation"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tls_cert_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaCertificateParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls cert params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_parameters"
            ]
          },
          "tls_parameters": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaDownstreamTlsParamsType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for tls parameters.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "tls_cert_params"
            ]
          },
          "user_identification": {
            "type": "array",
            "description": "A reference to user_identification object.\nThe rules in the user_identification object are evaluated to determine the user identifier to be rate limited.",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "User Identification Policy.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-description-short": "Reference to user_identification object.",
            "x-f5xc-description-medium": "Reference to user_identification object. The rules in the user_identification object are evaluated to determine the user identifier to be rate limited.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "waf_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaWafType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Replace a given virtual host in a given namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemavirtual_hostReplaceSpecType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "ticket_managementJiraIssue": {
        "type": "object",
        "description": "Top level object representing a Jira issue (ticket) - modeled after the JIRA REST API response format.",
        "title": "JiraIssue",
        "x-displayname": "Jira Issue.",
        "x-ves-proto-message": "ves.io.schema.ticket_management.JiraIssue",
        "properties": {
          "fields": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ticket_managementJiraIssueFields"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "id": {
            "type": "string",
            "description": "External ID of the Jira issue.",
            "title": "id",
            "x-displayname": "ID",
            "x-ves-example": "10000",
            "x-f5xc-example": "10000",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "key": {
            "type": "string",
            "description": "Cryptographic key material",
            "title": "key",
            "x-displayname": "Key",
            "x-ves-example": "TES-123",
            "x-f5xc-example": "TES-123",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 7,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Top level object representing a Jira issue (ticket) - modeled after the JIRA REST API response format.",
        "x-f5xc-description-medium": "Top level object representing a Jira issue (ticket) - modeled after the JIRA REST API response format.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ticket_managementJiraIssue",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ticket_managementJiraIssueFields": {
        "type": "object",
        "description": "Contains fields and information that are specific to Jira issues (ticket) - modeled after the JIRA REST API response format.",
        "title": "JiraIssueFields",
        "x-displayname": "Jira Issue Fields.",
        "x-ves-proto-message": "ves.io.schema.ticket_management.JiraIssueFields",
        "properties": {
          "description": {
            "type": "object",
            "description": "The description of the ticket in Atlassian Document Format JSON.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-example": "{\"type\"\"doc\", \"version\": 1, \"content\": [{\"type\": \"paragraph\", \"content\": [{\"type\": \"text\": \"text\": \"Sample description\"}]}]}",
            "x-f5xc-description-short": "The description of the ticket in Atlassian Document Format JSON.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 0,
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "issuetype": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ticket_managementJiraIssueType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "project": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ticket_managementJiraProject"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ticket_managementJiraIssueStatus"
              }
            ],
            "x-f5xc-example": "active",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "summary": {
            "type": "string",
            "description": "The summary (title) of the JIRA issue.",
            "title": "summary",
            "x-displayname": "Summary",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Contains fields and information that are specific to Jira issues (ticket) - modeled after the JIRA REST API response format.",
        "x-f5xc-description-medium": "Contains fields and information that are specific to Jira issues (ticket) - modeled after the JIRA REST API response format.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ticket_managementJiraIssueFields",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ticket_managementJiraIssueStatus": {
        "type": "object",
        "description": "Issue status type information that's specific to Jira - modeled after the JIRA REST API response format.",
        "title": "JiraIssueStatus",
        "x-displayname": "Jira Issue Status.",
        "x-ves-proto-message": "ves.io.schema.ticket_management.JiraIssueStatus",
        "properties": {
          "icon_url": {
            "type": "string",
            "description": "Externally accessible URL for the avatar of the status.",
            "title": "icon_url",
            "x-displayname": "Icon URL",
            "x-ves-example": "https://example.atlassian.net/images/icons/statuses/inprogress.png.",
            "x-f5xc-example": "https://example.atlassian.net/images/icons/statuses/inprogress.png",
            "x-f5xc-description-short": "Externally accessible URL for the avatar of the status.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "id": {
            "type": "string",
            "description": "External ID of the status.",
            "title": "id",
            "x-displayname": "ID",
            "x-ves-example": "3",
            "x-f5xc-example": "3",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Human readable status as it would appear in the external ticket tracking system's UI.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "In Progress.",
            "x-f5xc-example": "In Progress",
            "x-f5xc-description-short": "Human readable status as it would appear in the external ticket tracking system's UI.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "status_category": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ticket_managementJiraIssueStatusCategory"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Issue status type information that's specific to Jira - modeled after the JIRA REST API response format.",
        "x-f5xc-description-medium": "Issue status type information that's specific to Jira - modeled after the JIRA REST API response format.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ticket_managementJiraIssueStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ticket_managementJiraIssueStatusCategory": {
        "type": "object",
        "description": "Status category information like color name and ID - modeled after the JIRA REST API response format.",
        "title": "JiraIssueStatusCategory",
        "x-displayname": "Jira Issue Status Category.",
        "x-ves-proto-message": "ves.io.schema.ticket_management.JiraIssueStatusCategory",
        "properties": {
          "color_name": {
            "type": "string",
            "description": "Color of the status category.",
            "title": "color_name",
            "x-displayname": "Color Name.",
            "x-ves-example": "Blue-gray",
            "x-f5xc-example": "blue-gray",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "id": {
            "type": "string",
            "description": "External ID of the status color.",
            "title": "id",
            "format": "uint64",
            "x-displayname": "ID",
            "x-f5xc-example": "3",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Status category information like color name and ID - modeled after the JIRA REST API response format.",
        "x-f5xc-description-medium": "Status category information like color name and ID - modeled after the JIRA REST API response format.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ticket_managementJiraIssueStatusCategory",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ticket_managementJiraIssueType": {
        "type": "object",
        "description": "Issue (ticket) type information that's specific to Jira - modeled after the JIRA REST API response format.",
        "title": "JiraIssueType",
        "x-displayname": "Jira Issue Type.",
        "x-ves-proto-message": "ves.io.schema.ticket_management.JiraIssueType",
        "properties": {
          "avatar_id": {
            "type": "string",
            "description": "External ID of the avatar.",
            "title": "avatar_id",
            "x-displayname": "Avatar ID",
            "x-ves-example": "10303",
            "x-f5xc-example": "10303",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "icon_url": {
            "type": "string",
            "description": "Externally accessible URL for the avatar of the issue type.",
            "title": "icon_url",
            "x-displayname": "Icon URL",
            "x-ves-example": "https://example.atlassian.net/REST/API/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium.",
            "x-f5xc-example": "https://example.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium",
            "x-f5xc-description-short": "Externally accessible URL for the avatar of the issue type.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "id": {
            "type": "string",
            "description": "External ID of the Jira issue type.",
            "title": "id",
            "x-displayname": "ID",
            "x-ves-example": "10000",
            "x-f5xc-example": "10000",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name (human readable) of the Jira issue type.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Bug",
            "x-f5xc-example": "Bug",
            "x-f5xc-description-short": "Name (human readable) of the Jira issue type.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Issue (ticket) type information that's specific to Jira - modeled after the JIRA REST API response format.",
        "x-f5xc-description-medium": "Issue (ticket) type information that's specific to Jira - modeled after the JIRA REST API response format.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ticket_managementJiraIssueType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ticket_managementJiraProject": {
        "type": "object",
        "description": "Contains fields and information that are specific to Jira projects - modeled after the JIRA REST API response format.",
        "title": "JiraProject",
        "x-displayname": "Jira Project.",
        "x-ves-proto-message": "ves.io.schema.ticket_management.JiraProject",
        "properties": {
          "id": {
            "type": "string",
            "description": "External ID of the project.",
            "title": "id",
            "x-displayname": "ID",
            "x-ves-example": "10000",
            "x-f5xc-example": "10000",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "issue_types": {
            "type": "array",
            "description": "Returns available issue types for the project.",
            "title": "issue_types",
            "items": {
              "$ref": "#/components/schemas/ticket_managementJiraIssueType"
            },
            "x-displayname": "Issue Types.",
            "x-f5xc-description-short": "Returns available issue types for the project.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "key": {
            "type": "string",
            "description": "Key of the status.",
            "title": "key",
            "x-displayname": "Key",
            "x-ves-example": "TES",
            "x-f5xc-example": "TES",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 7,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "name": {
            "type": "string",
            "description": "Human readable name as it would appear in the external ticket tracking system's UI.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Test project.",
            "x-f5xc-example": "Test project",
            "x-f5xc-description-short": "Human readable name as it would appear in the external ticket tracking system's UI.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Contains fields and information that are specific to Jira projects - modeled after the JIRA REST API response format.",
        "x-f5xc-description-medium": "Contains fields and information that are specific to Jira projects - modeled after the JIRA REST API response format.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ticket_managementJiraProject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "ticket_managementTicketTrackingSystemType": {
        "type": "string",
        "description": "The type of ticket tracking system - JIRA, ServiceNow, etc.\n\nDefault enum value for type\nJira ticket type.",
        "title": "TicketTrackingSystemType",
        "enum": [
          "TYPE_UNKNOWN",
          "TYPE_JIRA"
        ],
        "default": "TYPE_UNKNOWN",
        "x-displayname": "Ticket Tracking System Type.",
        "x-ves-proto-enum": "ves.io.schema.ticket_management.TicketTrackingSystemType",
        "x-f5xc-description-short": "The type of ticket tracking system - JIRA, ServiceNow, etc. Default enum value for type Jira ticket type.",
        "x-f5xc-description-medium": "The type of ticket tracking system - JIRA, ServiceNow, etc. Default enum value for type Jira ticket type.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for ticket_managementTicketTrackingSystemType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"TYPE_UNKNOWN\"",
          "example_yaml": "TYPE_UNKNOWN\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "Security policies benefit from centralized management in shared namespace"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "virtual_hostAPIEPActivityMetricType": {
        "type": "string",
        "description": "Activity metric calculation type per API Endpoint\n\nIf specified, API returns top attacked APIEPs summary by sec_event percentage for given virtual host.\nThe percentage is calculated as sec_events_percentage(apiep) = #sec-events(apiep)/#requests(apiep) * 100\nIf specified, API returns top active APIEPs summary by request ratio for given virtual host.\nThe percentage is calculated as request_percentage(apiep) = #requests(apiep)/#requests(all apiep) * 100.",
        "title": "APIEPActivityMetricType",
        "enum": [
          "ACTIVITY_METRIC_TYPE_SEC_EVENTS_PERCENTAGE",
          "ACTIVITY_METRIC_TYPE_REQ_PERCENTAGE"
        ],
        "default": "ACTIVITY_METRIC_TYPE_SEC_EVENTS_PERCENTAGE",
        "x-displayname": "API Activity Metric Type.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.APIEPActivityMetricType",
        "x-f5xc-description-short": "Activity metric calculation type per API Endpoint If specified, API returns top attacked APIEPs summary by sec_event percentage for given virtual...",
        "x-f5xc-description-medium": "Activity metric calculation type per API Endpoint If specified, API returns top attacked APIEPs summary by sec_event percentage for given virtual host. The percentage is calculated as sec_events_percentage(apiep) = #sec-events(apiep)/#requests(apiep) * 100 If specified, API returns top active...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEPActivityMetricType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"ACTIVITY_METRIC_TYPE_SEC_EVENTS_PERCENTAGE\"",
          "example_yaml": "ACTIVITY_METRIC_TYPE_SEC_EVENTS_PERCENTAGE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEPActivityMetrics": {
        "type": "object",
        "description": "This represents the API endpoint's activity metrics.",
        "title": "APIEPActivityMetrics",
        "x-displayname": "API Endpoint Activity Metrics.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEPActivityMetrics",
        "properties": {
          "apiep_url": {
            "type": "string",
            "description": "URL for API endpoint.",
            "title": "apiep_url",
            "minLength": 1,
            "maxLength": 1024,
            "x-displayname": "API endpoint URL.",
            "x-ves-example": "/API/v1/user/{user_id}/vehicle/{vehicle_id}",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1024",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-example": "/api/v1/user/{user_id}/vehicle/{vehicle_id}",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_bytes": "1024",
              "ves.io.schema.rules.string.min_bytes": "1",
              "ves.io.schema.rules.string.templated_http_path": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 1024,
              "byteLength": {
                "max": 1024,
                "min": 1
              },
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "method": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpMethod"
              }
            ],
            "x-f5xc-example": "GET",
            "x-f5xc-description-short": "HTTP method (GET, POST, PUT, DELETE, etc.).",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "top_by_metric_value": {
            "type": "integer",
            "description": "The field `top_by_metric_value` returns one of the following values based on the metric type passed in the request field `top_by_metric`",
            "title": "top_by_metric_value",
            "format": "int32",
            "x-displayname": "Top By Metric Value.",
            "x-f5xc-description-short": "The field returns one of the following values based on the metric type passed in the request field.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Represents the API endpoint's activity metrics.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEPActivityMetrics",
          "required_fields": [
            "apiep_url"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"apiep_url\": \"/api/v1/user/{user_id}/vehicle/{vehicle_id}\"\n}",
          "example_yaml": "apiep_url: /api/v1/user/{user_id}/vehicle/{vehicle_id}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEPDiscoverySource": {
        "type": "string",
        "description": "API Endpoint Discovery Source\n\nMerging all source types to one spec\nDiscovery spec from traffic data\nDiscovery spec from crawler engine\nDiscovery spec from code scan.",
        "title": "APIEPDiscoverySource",
        "enum": [
          "MERGED",
          "TRAFFIC",
          "CRAWLER",
          "CODE_SCAN"
        ],
        "default": "MERGED",
        "x-displayname": "API Endpoint Discovery Source.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.APIEPDiscoverySource",
        "x-f5xc-description-short": "API Endpoint Discovery Source Merging all source types to one spec Discovery spec from traffic data Discovery spec from crawler engine Discovery...",
        "x-f5xc-description-medium": "API Endpoint Discovery Source Merging all source types to one spec Discovery spec from traffic data Discovery spec from crawler engine Discovery spec from code scan.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEPDiscoverySource",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"MERGED\"",
          "example_yaml": "MERGED\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEPSourceOpenApiSchemaRsp": {
        "type": "object",
        "description": "Shape of response to GET API endpoint Open API Schema request for specific sources.",
        "title": "APIEPSourceOpenApiSchemaRsp GET response",
        "x-displayname": "API endpoint Open API Schema per sources response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEPSourceOpenApiSchemaRsp",
        "properties": {
          "api_specs": {
            "type": "object",
            "description": "Discovered API Specifications based on discovery Source.",
            "title": "API Specifications",
            "x-displayname": "API Specifications.",
            "x-f5xc-description-short": "Discovered API Specifications based on discovery Source.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of response to GET API endpoint Open API Schema request for specific sources.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEPSourceOpenApiSchemaRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEPSummaryFilter": {
        "type": "object",
        "description": "Filter object for summary block.",
        "title": "APIEPSummaryFilter",
        "x-displayname": "APIEP Summary Filter.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEPSummaryFilter",
        "properties": {
          "apiep_category": {
            "type": "array",
            "description": "Category of API endpoints. Can be DISCOVERED, INVENTORY or SHADOW API.\nOptional filter by api_category. If absent, endpoints of all categories are considered.",
            "title": "APIEP Category",
            "items": {
              "$ref": "#/components/schemas/app_typeAPIEPCategory"
            },
            "x-displayname": "APIEP Category.",
            "x-ves-example": "DISCOVERED.",
            "x-f5xc-example": "DISCOVERED",
            "x-f5xc-description-short": "Category of API endpoints. Can be DISCOVERED, INVENTORY or SHADOW API.",
            "x-f5xc-description-medium": "Category of API endpoints. Can be DISCOVERED, INVENTORY or SHADOW API. Optional filter by api_category. If absent, endpoints of all categories are considered.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domains": {
            "type": "array",
            "description": "List of domains for which top API endpoints summary should be returned.\nOptional filter by domains. If absent, endpoints for all domains are considered.",
            "title": "List of Domain",
            "maxItems": 5,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "List of Domains.",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domains for which top API endpoints summary should be returned. Optional filter by domains.",
            "x-f5xc-description-medium": "List of domains for which top API endpoints summary should be returned. Optional filter by domains. If absent, endpoints for all domains are considered.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 5,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "end_time": {
            "type": "string",
            "description": "Format: unix_timestamp|RFC 3339\nFilters the APIEPs with access time < end_time.\nOptional: If not specified, then the end_time will be evaluated to start_time+2h\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "end time",
            "x-displayname": "End Time",
            "x-ves-example": "2019-09-24T12:30:11.733Z.",
            "x-f5xc-example": "2019-09-24T12:30:11.733Z",
            "x-f5xc-description-short": "Format: unix_timestamp|RFC 3339 Filters the APIEPs with access time < end_time.",
            "x-f5xc-description-medium": "Format: unix_timestamp|RFC 3339 Filters the APIEPs with access time < end_time. Optional: If not specified, then the end_time will be evaluated to start_time+2h If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Format: unix_timestamp|RFC 3339\nFilters the APIEPs with access time >= start_time.\nOptional: If not specified, then the start_time will be evaluated to end_time-2h\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "2019-09-23T12:30:11.733Z.",
            "x-f5xc-example": "2019-09-23T12:30:11.733Z",
            "x-f5xc-description-short": "Format: unix_timestamp|RFC 3339 Filters the APIEPs with access time >= start_time.",
            "x-f5xc-description-medium": "Format: unix_timestamp|RFC 3339 Filters the APIEPs with access time >= start_time. Optional: If not specified, then the start_time will be evaluated to end_time-2h If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEPSummaryFilter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEndpointLearntSchemaRsp": {
        "type": "object",
        "description": "Shape of response to GET req body schema for a given API endpoint.",
        "title": "API endpoint Req Body Schema response",
        "x-displayname": "Req Body Schema Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEndpointLearntSchemaRsp",
        "properties": {
          "api_specs": {
            "type": "object",
            "description": "Discovered API Specifications based on API type for eg, OpenAPI or GraphQL schema for API endpoint.",
            "title": "API Specifications",
            "x-displayname": "API Specifications.",
            "x-f5xc-description-short": "Discovered API Specifications based on API type for eg, OpenAPI or GraphQL schema for API endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "authentication": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAuthentication"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for authentication.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "discovered_schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeDiscoveredSchema"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for discovered schema.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "inventory_openapi_spec": {
            "type": "string",
            "description": "Inventory OpenAPI spec for request API endpoint.",
            "title": "Inventory OpenAPI Spec",
            "x-displayname": "Inventory OpenAPI Spec.",
            "x-ves-example": "{\\\"info\\\":{\\\"description\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"version\\\":\\\"\\\"},\\\"paths\\\":{\\\"\\/API\\/Addresss\\\":{\\\"GET\\\":{\\\"consumes\\\":[\\\"application\\/JSON\\\"],\\\"description\\\":\\\"Swagger auto-generated from learnt schema\\\",\\\"parameters\\\":[{\\\"description\\\":\\\"\\\",\\\"in\\\":\\\"query\\\",\\\"name\\\":\\\"test\\\",\\\"type\\\":\\\"string\\\"},{\\\"description\\\":\\\"\\\",\\\"in\\\":\\\"query\\\",\\\"name\\\":\\\"test1\\\",\\\"type\\\":\\\"string\\\"}],\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"\\\"}}}}},\\\"schemes\\\":[\\\"HTTPS\\\",\\\"HTTP\\\"],\\\"swagger\\\":\\\"2.0\\\"}",
            "x-f5xc-example": "\"{\\\"info\\\":{\\\"description\\\":\\\"\\\",\\\"title\\\":\\\"\\\",\\\"version\\\":\\\"\\\"},\\\"paths\\\":{\\\"\\/api\\/Address\\\":{\\\"get\\\":{\\\"consumes\\\":[\\\"application\\/json\\\"],\\\"description\\\":\\\"Swagger auto-generated from learnt schema\\\",\\\"parameters\\\":[{\\\"description\\\":\\\"\\\",\\\"in\\\":\\\"query\\\",\\\"name\\\":\\\"test\\\",\\\"type\\\":\\\"string\\\"},{\\\"description\\\":\\\"\\\",\\\"in\\\":\\\"query\\\",\\\"name\\\":\\\"test1\\\",\\\"type\\\":\\\"string\\\"}],\\\"responses\\\":{\\\"200\\\":{\\\"description\\\":\\\"\\\"}}}}},\\\"schemes\\\":[\\\"https\\\",\\\"http\\\"],\\\"swagger\\\":\\\"2.0\\\"}\"",
            "x-f5xc-description-short": "Inventory OpenAPI spec for request API endpoint.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "pdf_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIEPPDFInfo"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data": {
            "type": "array",
            "description": "List of sensitive data for request API endpoint.",
            "title": "List of sensitive data",
            "items": {
              "$ref": "#/components/schemas/app_typeSensitiveData"
            },
            "x-displayname": "List of Sensitive Data.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of sensitive data for request API endpoint.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of response to GET req body schema for a given API endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEndpointLearntSchemaRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEndpointPDFRsp": {
        "type": "object",
        "description": "Shape of response to GET PDF for a given API endpoint.",
        "title": "API endpoint PDF response",
        "x-displayname": "PDF Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEndpointPDFRsp",
        "properties": {
          "pdf_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIEPPDFInfo"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Shape of response to GET PDF for a given API endpoint.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEndpointPDFRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEndpointReq": {
        "type": "object",
        "description": "Request shape for GET API endpoint API.",
        "title": "API endpoint GET request Per Virtual Host",
        "x-displayname": "API Endpoint Request per Virtual Host.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEndpointReq",
        "properties": {
          "api_endpoint_info_request": {
            "type": "array",
            "description": "List of additional things that needs to be sent as part of the request.",
            "title": "Api Endpoint Info Request",
            "items": {
              "$ref": "#/components/schemas/app_typeApiEndpointInfoRequest"
            },
            "x-displayname": "API Endpoint Info Request.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "List of additional things that needs to be sent as part of the request.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "collapsed_url": {
            "type": "string",
            "description": "Requested API endPoint for API URL.",
            "title": "API URL",
            "x-displayname": "API URL",
            "x-ves-example": "API/v1/user_id/DYN/vehicle_id/DYN.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "api/v1/user_id/DYN/vehicle_id/DYN",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "domains": {
            "type": "array",
            "description": "List of domains that needs to be sent as part of the request\nOptional filter by domains. If absent, all domains are considered.",
            "title": "List of Domain",
            "maxItems": 5,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "List of Domain.",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domains that needs to be sent as part of the request Optional filter by domains.",
            "x-f5xc-description-medium": "List of domains that needs to be sent as part of the request Optional filter by domains. If absent, all domains are considered.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 5,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "method": {
            "type": "string",
            "description": "Requested API endPoint for method.",
            "title": "Method of current API URL",
            "x-displayname": "Method",
            "x-ves-example": "GET",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "GET",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-f5xc-example": "blogging-app-vhost",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "Namespace of the virtual host for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEndpointReq",
          "required_fields": [
            "collapsed_url",
            "method"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"collapsed_url\": \"api/v1/user_id/DYN/vehicle_id/DYN\",\n  \"method\": \"GET\"\n}",
          "example_yaml": "collapsed_url: api/v1/user_id/DYN/vehicle_id/DYN\nmethod: GET"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEndpointRsp": {
        "type": "object",
        "description": "Response shape for GET API endpoint API.",
        "title": "API endpoint GET response",
        "x-displayname": "API Endpoint Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEndpointRsp",
        "properties": {
          "apiep": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeAPIEPInfo"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for GET API endpoint API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEndpointRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAPIEndpointsRsp": {
        "type": "object",
        "description": "Response shape for GET API endpoints API. It is list of API endpoints discovered.",
        "title": "API endpoints GET response",
        "x-displayname": "API Endpoints Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.APIEndpointsRsp",
        "properties": {
          "apiep_list": {
            "type": "array",
            "description": "List of API endpoints discovered.",
            "title": "API endpoints list",
            "items": {
              "$ref": "#/components/schemas/app_typeAPIEPInfo"
            },
            "x-displayname": "API Endpoints.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "last_update": {
            "type": "string",
            "description": "The API endpoints Last Update timestamp indicates most recent update of API endpoints happened\nThe API Discovery periodically updates the API endpoints list based on application's traffic.",
            "title": "last_update",
            "format": "date-time",
            "x-displayname": "Last Update.",
            "x-f5xc-description-short": "The API endpoints Last Update timestamp indicates most recent update of API endpoints happened The API Discovery periodically updates the API...",
            "x-f5xc-description-medium": "The API endpoints Last Update timestamp indicates most recent update of API endpoints happened The API Discovery periodically updates the API endpoints list based on application's traffic.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for GET API endpoints API. It is list of API endpoints discovered.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAPIEndpointsRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostApiEndpointsStatsRsp": {
        "type": "object",
        "description": "Response shape for GET API endpoints Stats.",
        "title": "Api Endpoints stats Response",
        "x-displayname": "API Endpoints Stats Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.ApiEndpointsStatsRsp",
        "properties": {
          "discovered": {
            "type": "integer",
            "description": "Number of endpoints that categorized as discover.",
            "title": "number of discovered endpoints",
            "format": "int32",
            "x-displayname": "Discovered.",
            "x-f5xc-description-short": "Number of endpoints that categorized as discover.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "inventory": {
            "type": "integer",
            "description": "Number of endpoints that categorized as inventory.",
            "title": "number of inventory endpoints",
            "format": "int32",
            "x-displayname": "Inventory",
            "x-f5xc-description-short": "Number of endpoints that categorized as inventory.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "pii_detected": {
            "type": "integer",
            "description": "Number of endpoints that detected with pii.",
            "title": "number of pii endpoints",
            "format": "int32",
            "x-displayname": "PII Detected.",
            "x-f5xc-description-short": "Number of endpoints that detected with pii.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "shadow": {
            "type": "integer",
            "description": "Number of endpoints that categorized as shadow.",
            "title": "number of shadow endpoints",
            "format": "int32",
            "x-displayname": "Shadow",
            "x-f5xc-description-short": "Number of endpoints that categorized as shadow.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "total_endpoints": {
            "type": "integer",
            "description": "Total endpoints.",
            "title": "number of endpoints",
            "format": "int32",
            "x-displayname": "Total Endpoints.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for GET API endpoints Stats.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostApiEndpointsStatsRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostApiInventorySchemaQueryType": {
        "type": "string",
        "description": "API Inventory Schema Query Type\n\n- API_INVENTORY_SCHEMA_FULL_RESPONSE: Full Response\n\n- API_INVENTORY_SCHEMA_CURRENT: Current Schema\n\n- API_INVENTORY_SCHEMA_UPDATED: Updated Schema.",
        "title": "API Inventory Schema Query Type",
        "enum": [
          "API_INVENTORY_SCHEMA_FULL_RESPONSE",
          "API_INVENTORY_SCHEMA_CURRENT",
          "API_INVENTORY_SCHEMA_UPDATED"
        ],
        "default": "API_INVENTORY_SCHEMA_FULL_RESPONSE",
        "x-displayname": "API Inventory Schema Query Type.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.ApiInventorySchemaQueryType",
        "x-f5xc-description-short": "API Inventory Schema Query Type - API_INVENTORY_SCHEMA_FULL_RESPONSE: Full Response - API_INVENTORY_SCHEMA_CURRENT: Current Schema ...",
        "x-f5xc-description-medium": "API Inventory Schema Query Type - API_INVENTORY_SCHEMA_FULL_RESPONSE: Full Response - API_INVENTORY_SCHEMA_CURRENT: Current Schema - API_INVENTORY_SCHEMA_UPDATED: Updated Schema.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostApiInventorySchemaQueryType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"API_INVENTORY_SCHEMA_FULL_RESPONSE\"",
          "example_yaml": "API_INVENTORY_SCHEMA_FULL_RESPONSE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAssignAPIDefinitionReq": {
        "type": "object",
        "description": "Request form for Assign API Definition.",
        "title": "Assign API Definition Request",
        "x-displayname": "Assign API Definition Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.AssignAPIDefinitionReq",
        "properties": {
          "api_definition": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "api_definition",
                "field_path": "api_definition",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "create_new": {
            "type": "boolean",
            "description": "Create an empty API Definition object, if not exists.",
            "title": "Create if not exists",
            "format": "boolean",
            "x-displayname": "Create New.",
            "x-f5xc-description-short": "Create an empty API Definition object, if not exists.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the Virtual Hosts.",
            "title": "Name",
            "x-displayname": "Name",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the Virtual Hosts.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAssignAPIDefinitionReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAssignAPIDefinitionResp": {
        "type": "object",
        "description": "Response form for Assign API Definition.",
        "title": "Assign API Definition Response",
        "x-displayname": "Assign API Definition Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.AssignAPIDefinitionResp",
        "x-f5xc-description-short": "Response form for Assign API Definition.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAssignAPIDefinitionResp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostAuthenticationDetails": {
        "type": "object",
        "description": "Authentication related information. This allows to configure the URL to redirect after the authentication\nAuthentication Object Reference, configuration of cookie params etc.",
        "title": "AuthenticationDetails",
        "x-displayname": "Authentication Details.",
        "x-ves-oneof-field-cookie_params_choice": "[\"cookie_params\",\"use_auth_object_config\"]",
        "x-ves-oneof-field-redirect_url_choice": "[\"redirect_dynamic\",\"redirect_url\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.AuthenticationDetails",
        "properties": {
          "auth_config": {
            "type": "array",
            "description": "Reference to Authentication Config Object.",
            "title": "Authentication Object",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Reference to Authentication Object.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-description-short": "Reference to Authentication Config Object.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "cookie_params": {
            "allOf": [
              {
                "$ref": "#/components/schemas/authenticationCookieParams"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for cookie params.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "use_auth_object_config"
            ]
          },
          "redirect_dynamic": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for redirect dynamic.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "redirect_url"
            ]
          },
          "redirect_url": {
            "type": "string",
            "description": "Exclusive with [redirect_dynamic]\n\nuser can provide a URL for e.g https://abc.xyz.com where user gets redirected. This URL configured here\nmust match with the redirect URL configured with the OIDC provider.",
            "title": "Redirect URL",
            "minLength": 1,
            "maxLength": 128,
            "x-displayname": "Configure Redirect URL.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-example": "https://abc.xyz.com",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128",
              "ves.io.schema.rules.string.min_len": "1",
              "ves.io.schema.rules.string.uri_ref": "true"
            },
            "x-f5xc-description-short": "Exclusive with [redirect_dynamic] user can provide a URL for e.g https://abc.xyz.com where user gets redirected.",
            "x-f5xc-description-medium": "Exclusive with [redirect_dynamic] user can provide a URL for e.g https://abc.xyz.com where user gets redirected. This URL configured here must match with the redirect URL configured with the OIDC provider.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 128,
              "format": "uri",
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "redirect_dynamic"
            ]
          },
          "use_auth_object_config": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "cookie_params"
            ]
          }
        },
        "x-f5xc-description-medium": "Authentication related information. This allows to configure the URL to redirect after the authentication Authentication Object Reference, configuration of cookie params etc.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostAuthenticationDetails",
          "required_fields": [
            "auth_config"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"auth_config\": [\n    {}\n  ]\n}",
          "example_yaml": "auth_config:\n- {}"
        },
        "x-f5xc-cli-domain": "tenant_and_identity",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCdnServiceType": {
        "type": "object",
        "x-ves-oneof-field-content_choice": "[\"download_delivery\",\"live_streaming\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CdnServiceType",
        "properties": {
          "cdn_auth_token": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSecretType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for cdn auth token.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "dns_zones": {
            "type": "array",
            "description": "Internal reference to dns_zone object for internal cdnlb when caching is enabled for httplb.",
            "title": "DNS Zone refs",
            "maxItems": 1,
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "DNS Zone",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "1"
            },
            "x-f5xc-description-short": "Internal reference to dns_zone object for internal cdnlb when caching is enabled for httplb.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 1,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "download_delivery": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for download delivery.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "live_streaming"
            ]
          },
          "live_streaming": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ioschemaEmpty"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for live streaming.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "download_delivery"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCdnServiceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCreateJiraIssueRequest": {
        "type": "object",
        "title": "CreateJiraIssueRequest",
        "x-displayname": "Create Jira Issue Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CreateJiraIssueRequest",
        "properties": {
          "description": {
            "type": "string",
            "description": "Optional description.",
            "title": "description",
            "maxLength": 8096,
            "x-displayname": "Description.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "issue_type": {
            "type": "string",
            "description": "Name of the issue type.",
            "title": "issue_type",
            "maxLength": 256,
            "x-displayname": "Issue Type.",
            "x-ves-example": "Bug",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "Bug",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "project": {
            "type": "string",
            "description": "External ID of the project.",
            "title": "project",
            "maxLength": 256,
            "x-displayname": "Project",
            "x-ves-example": "10001",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "10001",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "summary": {
            "type": "string",
            "description": "Configuration parameter for summary",
            "title": "summary",
            "maxLength": 8096,
            "x-displayname": "Summary",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCreateJiraIssueRequest",
          "required_fields": [
            "issue_type",
            "project",
            "summary"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"issue_type\": \"Bug\",\n  \"project\": \"10001\",\n  \"summary\": \"value\"\n}",
          "example_yaml": "issue_type: Bug\nproject: '10001'\nsummary: value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of virtual_host",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCreateRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCreateTicketRequest": {
        "type": "object",
        "title": "CreateTicketRequest",
        "x-displayname": "Create Ticket Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CreateTicketRequest",
        "properties": {
          "jira_issue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCreateJiraIssueRequest"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "Map of string keys and values that can be used to organize and categorize\n(scope and select) objects as chosen by the user. Values specified here will be used\nby selector expression.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "16"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.map.max_pairs": "16"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user.",
            "x-f5xc-description-medium": "Map of string keys and values that can be used to organize and categorize (scope and select) objects as chosen by the user. Values specified here will be used by selector expression.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "maxLength": 256,
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "blogging-app-vhost",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace for the ticket.",
            "title": "namespace",
            "maxLength": 256,
            "x-displayname": "Namespace",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "ticket_tracking_system": {
            "type": "string",
            "description": "The primary identifier (name) of the ticket tracking system system.",
            "title": "ticket_tracking_system",
            "minLength": 1,
            "maxLength": 256,
            "x-displayname": "Ticket Tracking System.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256",
              "ves.io.schema.rules.string.min_len": "1"
            },
            "x-f5xc-description-short": "The primary identifier (name) of the ticket tracking system system.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "minLength": 1,
              "maxLength": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCreateTicketRequest",
          "required_fields": [
            "name",
            "namespace",
            "ticket_tracking_system"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"blogging-app-vhost\",\n  \"namespace\": \"example-resource\",\n  \"ticket_tracking_system\": \"value\"\n}",
          "example_yaml": "name: blogging-app-vhost\nnamespace: example-resource\nticket_tracking_system: value"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostCreateTicketResponse": {
        "type": "object",
        "title": "CreateTicketResponse",
        "x-displayname": "Create Ticket Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.CreateTicketResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors related to ticket creation.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostCreateTicketResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a virtual_host",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostDynamicReverseProxyType": {
        "type": "object",
        "description": "In this mode of proxy, virtual host will resolve the destination endpoint dynamically.\n\nThe dynamic resolution is done using a predefined field in the request. This predefined\nfield depends on the ProxyType configured on the Virtual Host.\n\nFor HTTP traffic, i.e. With ProxyType as HTTP_PROXY or HTTPS_PROXY, virtual host will use the\n\"HOST\" HTTP header from the request and perform DNS resolution to select destination endpoint.\n\nFor TCP traffic with SNI, (If the ProxyType is TCP_PROXY_WITH_SNI), virtual host will perform DNS\nresolution using the SNI.\n\nThe DNS resolution is performed in the virtual network specified in outside_network_type or\noutside_network\n\nIn both modes of operation(either using Host header or SNI), the DNS resolution could return\nmultiple addresses. First IPv4 address from such returned list is used as endpoint for the\nrequest. The DNS response is cached for 60s by default.",
        "title": "DynamicReverseProxyType",
        "x-displayname": "Dynamic Reverse Proxy Type.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.DynamicReverseProxyType",
        "properties": {
          "connection_timeout": {
            "type": "integer",
            "description": "The timeout for new network connections to upstream server.\nThis is specified in milliseconds. The default value is 2000 (2 seconds)",
            "title": "connection_timeout",
            "format": "int64",
            "x-displayname": "Connection Timeout.",
            "x-ves-example": "4000",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-example": "4000",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.lte": "600000"
            },
            "x-f5xc-description-short": "The timeout for new network connections to upstream server. This is specified in milliseconds.",
            "x-f5xc-description-medium": "The timeout for new network connections to upstream server. This is specified in milliseconds. The default value is 2000 (2 seconds).",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "maximum": 600000,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resolution_network": {
            "type": "array",
            "description": "Reference to virtual network where the endpoint is resolved.\nReference is valid only when the network type is VIRTUAL_NETWORK_PER_SITE or\nVIRTUAL_NETWORK_GLOBAL. It is ignored for all other network types.",
            "title": "resolution_network",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Resolution Network.",
            "x-f5xc-description-short": "Reference to virtual network where the endpoint is resolved.",
            "x-f5xc-description-medium": "Reference to virtual network where the endpoint is resolved. Reference is valid only when the network type is VIRTUAL_NETWORK_PER_SITE or VIRTUAL_NETWORK_GLOBAL. It is ignored for all other network types.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resolution_network_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaVirtualNetworkType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resolve_endpoint_dynamically": {
            "type": "boolean",
            "description": "X-example : true\nIn this mode of proxy, virtual host will resolve the destination endpoint dynamically.\n\nThe dynamic resolution is done using a predefined field in the request. This predefined\nfield depends on the ProxyType configured on the Virtual Host.\n\nFor HTTP traffic, i.e. With ProxyType as HTTP_PROXY or HTTPS_PROXY, virtual host will use the\n\"HOST\" HTTP header from the request and perform DNS resolution to select destination endpoint.\n\nFor TCP traffic with SNI, (If the ProxyType is TCP_PROXY_WITH_SNI), virtual host will perform DNS\nresolution using the SNI.\n\nThe DNS resolution is performed in the virtual network specified in outside_network_type or\noutside_network\n\nIn both modes of operation(either using Host header or SNI), the DNS resolution could return\nmultiple addresses. First IPv4 address from such returned list is used as endpoint for the\nrequest. The DNS response is cached for 60s by default.",
            "title": "Enable the dynamic resolution of the endpoint",
            "format": "boolean",
            "x-displayname": "Dynamic Endpoint Resolution.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "X-example : true In this mode of proxy, virtual host will resolve the destination endpoint dynamically.",
            "x-f5xc-description-medium": "X-example : true In this mode of proxy, virtual host will resolve the destination endpoint dynamically. The dynamic resolution is done using a predefined field in the request. This predefined field depends on the ProxyType configured on the Virtual Host.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "In this mode of proxy, virtual host will resolve the destination endpoint dynamically.",
        "x-f5xc-description-medium": "In this mode of proxy, virtual host will resolve the destination endpoint dynamically. The dynamic resolution is done using a predefined field in the request. This predefined field depends on the ProxyType configured on the Virtual Host.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostDynamicReverseProxyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetAPICallSummaryReq": {
        "type": "object",
        "description": "Request model for GetAPICallSummary API.",
        "title": "GetAPICallSummaryReq",
        "x-displayname": "GET API Call Summary Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetAPICallSummaryReq",
        "properties": {
          "apiep_summary_filter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAPIEPSummaryFilter"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-f5xc-example": "blogging-app-vhost",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "Namespace of the virtual host for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Request model for GetAPICallSummary API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetAPICallSummaryReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetAPICallSummaryRsp": {
        "type": "object",
        "description": "Response model for GetSensitiveDataSummaryRsp API.",
        "title": "GetAPICallSummaryRsp",
        "x-displayname": "GetAPICallSummary API Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetAPICallSummaryRsp",
        "properties": {
          "request_count_per_rsp_code": {
            "type": "array",
            "description": "Number of API calls for each category of response.",
            "title": "request_count_per_rsp_code",
            "items": {
              "$ref": "#/components/schemas/virtual_hostRequestCountPerResponseClass"
            },
            "x-displayname": "API Calls Per Response Type.",
            "x-f5xc-description-short": "Number of API calls for each category of response.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "total_calls": {
            "type": "string",
            "description": "Total API calls.",
            "title": "total_calls",
            "format": "uint64",
            "x-displayname": "Total API Calls.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "uint64",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response model for GetSensitiveDataSummaryRsp API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetAPICallSummaryRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetAPIEndpointsSchemaUpdatesReq": {
        "type": "object",
        "description": "Request shape for GET API Endpoints Schema Updates.",
        "title": "Get API Endpoints Schema Updates Request",
        "x-displayname": "GET API Endpoints Schema Updates Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetAPIEndpointsSchemaUpdatesReq",
        "properties": {
          "api_endpoints_filter": {
            "type": "array",
            "description": "The list of discovered API endpoint to GET schema for.\nNOTE: if empty, then the all API endpoints with schema changes would be returned.",
            "title": "API Endpoints Filter",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/viewsApiOperation"
            },
            "x-displayname": "API Endpoints Filter.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "100"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "100"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of discovered API endpoint to GET schema for.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 100,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the Virtual Host for the current request.",
            "title": "Name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "x-f5xc-description-short": "The name of the Virtual Host for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace of the Virtual Host for the current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "The namespace of the Virtual Host for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "query_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostApiInventorySchemaQueryType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request shape for GET API Endpoints Schema Updates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetAPIEndpointsSchemaUpdatesReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetAPIEndpointsSchemaUpdatesResp": {
        "type": "object",
        "description": "Response shape for GET API Endpoints Schema Updates.",
        "title": "Get API Endpoints Schema Updates Response",
        "x-displayname": "GET API Endpoints Schema Updates Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetAPIEndpointsSchemaUpdatesResp",
        "properties": {
          "api_endpoints_current_schemas": {
            "type": "array",
            "description": "The list of discovered API endpoints with current schemas.",
            "title": "API Endpoints Current Schemas",
            "items": {
              "$ref": "#/components/schemas/viewsApiEndpointWithSchema"
            },
            "x-displayname": "API Endpoints Current Schemas.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of discovered API endpoints with current schemas.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "api_endpoints_updated_schemas": {
            "type": "array",
            "description": "The list of API Inventory API endpoints with updated schemas.",
            "title": "API Endpoints Updated Schemas",
            "items": {
              "$ref": "#/components/schemas/viewsApiEndpointWithSchema"
            },
            "x-displayname": "API Endpoints Updated Schemas.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of API Inventory API endpoints with updated schemas.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for GET API Endpoints Schema Updates.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetAPIEndpointsSchemaUpdatesResp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetDnsInfoResponse": {
        "type": "object",
        "description": "Response for GET-DNS-info API.",
        "title": "GetDnsInfoResponse",
        "x-displayname": "GET DNS Info Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetDnsInfoResponse",
        "properties": {
          "dns_info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_host_dns_infoGlobalSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetDnsInfoResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read virtual_host",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/virtual_hostStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetTopAPIEndpointsReq": {
        "type": "object",
        "description": "Request model for GetTopAPIEndpointsReq API.",
        "title": "Top attacked/active API endpoints request per virtual host",
        "x-displayname": "Top Attacked/Active API Endpoints per Virtual Host.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetTopAPIEndpointsReq",
        "properties": {
          "apiep_summary_filter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAPIEPSummaryFilter"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-f5xc-example": "blogging-app-vhost",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "Namespace of the virtual host for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "top_by_metric": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAPIEPActivityMetricType"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for top by metric.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "topk": {
            "type": "integer",
            "description": "Number of top API endpoints to return in the response.",
            "title": "topk",
            "format": "int64",
            "x-displayname": "Number of Top API Endpoints.",
            "x-ves-example": "5",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "10"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "10"
            },
            "x-f5xc-description-short": "Number of top API endpoints to return in the response.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 10,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request model for GetTopAPIEndpointsReq API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetTopAPIEndpointsReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetTopAPIEndpointsRsp": {
        "type": "object",
        "description": "Response model for GetTopAttackedAPIEndpoints API.",
        "title": "API endpoint GET response",
        "x-displayname": "API Endpoint Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetTopAPIEndpointsRsp",
        "properties": {
          "top_apieps": {
            "type": "array",
            "description": "Top Attacked API endpoints.",
            "title": "top_apieps",
            "maxItems": 10,
            "items": {
              "$ref": "#/components/schemas/virtual_hostAPIEPActivityMetrics"
            },
            "x-displayname": "Top Attacked Endpoints.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "10",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.max_items": "10",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 10,
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response model for GetTopAttackedAPIEndpoints API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetTopAPIEndpointsRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetTopSensitiveDataReq": {
        "type": "object",
        "description": "Request model for GetTopSensitiveDataReq API.",
        "title": "GetTopSensitiveDataReq",
        "x-displayname": "GET Top Sensitive Data Request Object.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetTopSensitiveDataReq",
        "properties": {
          "apiep_category": {
            "type": "array",
            "description": "Category of API endpoints. Can be DISCOVERED, INVENTORY or SHADOW API.",
            "title": "APIEP Category",
            "items": {
              "$ref": "#/components/schemas/app_typeAPIEPCategory"
            },
            "x-displayname": "APIEP Category.",
            "x-ves-example": "DISCOVERED.",
            "x-f5xc-example": "DISCOVERED",
            "x-f5xc-description-short": "Category of API endpoints. Can be DISCOVERED, INVENTORY or SHADOW API.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domains": {
            "type": "array",
            "description": "List of domains for which top API endpoints summary should be returned.\nOptional filter by domains. If absent, endpoints for all domains are considered.",
            "title": "List of Domain",
            "maxItems": 5,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "List of Domain.",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domains for which top API endpoints summary should be returned. Optional filter by domains.",
            "x-f5xc-description-medium": "List of domains for which top API endpoints summary should be returned. Optional filter by domains. If absent, endpoints for all domains are considered.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 5,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-f5xc-example": "blogging-app-vhost",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "Namespace of the virtual host for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "topk": {
            "type": "integer",
            "description": "Number of top API endpoints to return in the response.",
            "title": "topk",
            "format": "int64",
            "x-displayname": "Number of Top API Endpoints.",
            "x-ves-example": "5",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "10"
            },
            "x-f5xc-example": "5",
            "x-validation-rules": {
              "ves.io.schema.rules.uint32.gte": "0",
              "ves.io.schema.rules.uint32.lte": "10"
            },
            "x-f5xc-description-short": "Number of top API endpoints to return in the response.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "discovery",
              "minimum": 0,
              "maximum": 10,
              "deterministic": true,
              "metadata": {
                "source": "api-probed",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request model for GetTopSensitiveDataReq API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetTopSensitiveDataReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetTopSensitiveDataRsp": {
        "type": "object",
        "description": "Response model for GetTopSensitiveDataRsp API.",
        "title": "GetTopSensitiveDataRsp",
        "x-displayname": "SensitiveDataSummary API Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetTopSensitiveDataRsp",
        "properties": {
          "top_sensitive_data": {
            "type": "array",
            "description": "Top k (max 10) sensitive data types with highest APIs count.",
            "title": "top_sensitive_data",
            "items": {
              "$ref": "#/components/schemas/virtual_hostSensitiveDataCount"
            },
            "x-displayname": "Top Sensitive Data.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "Top k (max 10) sensitive data types with highest APIs count.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response model for GetTopSensitiveDataRsp API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetTopSensitiveDataRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetVulnerabilitiesReq": {
        "type": "object",
        "description": "Request model for GetVulnerabilitiesReq API.",
        "title": "GetVulnerabilitiesReq",
        "x-displayname": "GET Vulnerabilities Request.",
        "x-ves-oneof-field-context": "[\"api_endpoint\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetVulnerabilitiesReq",
        "properties": {
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostAPIEndpoint"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domains": {
            "type": "array",
            "description": "List of domains for which vulnerabilities should be returned.\nOptional filter by domains. If absent, vulnerabilities for all domains are considered.",
            "title": "List of Domain",
            "maxItems": 5,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "x-displayname": "List of Domain.",
            "x-ves-example": "www.example.com.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.items.string.max_len": "256",
              "ves.io.schema.rules.repeated.items.string.min_len": "1",
              "ves.io.schema.rules.repeated.items.string.vh_domain_or_ip": "true",
              "ves.io.schema.rules.repeated.max_items": "5",
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of domains for which vulnerabilities should be returned. Optional filter by domains.",
            "x-f5xc-description-medium": "List of domains for which vulnerabilities should be returned. Optional filter by domains. If absent, vulnerabilities for all domains are considered.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 5,
              "minItems": 1,
              "uniqueItems": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-f5xc-example": "blogging-app-vhost",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "Namespace of the virtual host for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Request model for GetVulnerabilitiesReq API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetVulnerabilitiesReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostGetVulnerabilitiesRsp": {
        "type": "object",
        "description": "Response model for GetVulnerabilitiesRsp API.",
        "title": "GetVulnerabilitiesRsp",
        "x-displayname": "GetVulnerabilitiesRsp API Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.GetVulnerabilitiesRsp",
        "properties": {
          "vulnerabilities": {
            "type": "array",
            "description": "List of vulnerabilities found in context.",
            "title": "vulnerabilities",
            "items": {
              "$ref": "#/components/schemas/virtual_hostVulnerability"
            },
            "x-displayname": "List of vulnerabilities.",
            "x-f5xc-description-short": "List of vulnerabilities found in context.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response model for GetVulnerabilitiesRsp API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostGetVulnerabilitiesRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of virtual_host",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/virtual_hostListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostListResponseItem": {
        "type": "object",
        "description": "By default a summary of virtual_host is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of virtual_host",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.virtual_host.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this virtual_host.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this virtual_host.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this virtual_host.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this virtual_host.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates virtual_host is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates virtual_host is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this virtual_host.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this virtual_host.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this virtual_host.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/virtual_hostStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this virtual_host.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of virtual_host is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-description-medium": "By default a summary of virtual_host is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostProxyType": {
        "type": "string",
        "description": "ProxyType tells the type of proxy to install for the virtual host.\n\nOnly the following combination of VirtualHosts within same AdvertisePolicy is permitted\n(None of them should have \"*\" in domains when used with other VirtualHosts in same AdvertisePolicy)\n1. Multiple TCP_PROXY_WITH_SNI and multiple HTTPS_PROXY\n2. Multiple HTTP_PROXY\n3. Multiple HTTPS_PROXY\n4. Multiple TCP_PROXY_WITH_SNI\n\nHTTPS_PROXY without TLS parameters is not permitted\nHTTP_PROXY/HTTPS_PROXY/TCP_PROXY_WITH_SNI/SMA_PROXY with empty domains is not permitted\nTCP_PROXY_WITH_SNI/SMA_PROXY should not have \"*\" in domains\n\n- HTTP_PROXY: HTTP_PROXY\n\nInstall HTTP proxy. HTTP Proxy is the default proxy installed.\n- TCP_PROXY: TCP_PROXY\n\nInstall TCP proxy\n- TCP_PROXY_WITH_SNI: TCP_PROXY_WITH_SNI\n\nInstall TCP proxy with SNI Routing\n- TLS_TCP_PROXY: TCP_PROXY\n\nInstall TCP proxy\n- TLS_TCP_PROXY_WITH_SNI: TCP_PROXY_WITH_SNI\n\nInstall TCP proxy with SNI Routing\n- HTTPS_PROXY: HTTPS_PROXY\n\nInstall HTTPS proxy\n- UDP_PROXY: UDP_PROXY\n\nInstall UDP proxy\n- SMA_PROXY: SMA_PROXY\n\nInstall Secret Management Access proxy\n- DNS_PROXY: DNS_PROXY\n\nInstall DNS proxy\n- ZTNA_PROXY: ZTNA_PROXY\n\nInstall ZTNA proxy.this is going to be deprecated with UZTNA_PROXY.\n- UZTNA_PROXY: UZTNA_PROXY\n\nInstall UZTNA proxy\n- TMM_HTTP_PROXY: TMM_HTTP_PROXY\n\nInstall TMM HTTP proxy for HTTP/1.1 and HTTP/2 traffic. Used by TMM proxy type.\n- TMM_HTTPS_PROXY: TMM_HTTPS_PROXY\n\nInstall TMM HTTPS proxy for HTTP/1.1 and HTTP/2 traffic. Used by TMM proxy type.\n- TMM_TCP_PROXY: TMM_TCP_PROXY\n\nInstall TMM TCP proxy for TCP traffic. Used by TMM proxy type.\n- TMM_UDP_PROXY: TMM_UDP_PROXY\n\nInstall TMM UDP proxy for UDP traffic. Used by TMM proxy type.\n- TMM_QUIC_PROXY: TMM_QUIC_PROXY\n\nInstall TMM QUIC proxy for HTTP/3 traffic. Used by TMM proxy type.",
        "enum": [
          "UDP_PROXY",
          "SMA_PROXY",
          "DNS_PROXY",
          "ZTNA_PROXY",
          "UZTNA_PROXY",
          "TMM_HTTP_PROXY",
          "TMM_HTTPS_PROXY",
          "TMM_TCP_PROXY",
          "TMM_UDP_PROXY",
          "TMM_QUIC_PROXY"
        ],
        "x-displayname": "Type of Proxy.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.ProxyType",
        "x-f5xc-description-short": "ProxyType tells the type of proxy to install for the virtual host.",
        "x-f5xc-description-medium": "ProxyType tells the type of proxy to install for the virtual host. Only the following combination of VirtualHosts within same AdvertisePolicy is permitted (None of them should have \"*\" in domains when used with other VirtualHosts in same AdvertisePolicy) 1. Multiple TCP_PROXY_WITH_SNI and...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostProxyType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"UDP_PROXY\"",
          "example_yaml": "UDP_PROXY\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a virtual_host",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostReplaceRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.virtual_host.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostRequestCountPerResponseClass": {
        "type": "object",
        "description": "Request count per response class.",
        "title": "RequestCountPerResponseClass",
        "x-displayname": "Request Count Per Response Class.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.RequestCountPerResponseClass",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Request count for this response code class/category.",
            "title": "count",
            "format": "int32",
            "x-displayname": "Request Count For Response Class.",
            "x-f5xc-example": "42",
            "x-f5xc-description-short": "Request count for this response code class/category.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "general",
              "minimum": 0,
              "maximum": 10000,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rsp_code_class": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaHttpResponseCodeClass"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for rsp code class.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostRequestCountPerResponseClass",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostSensitiveDataCount": {
        "type": "object",
        "description": "Response model for GetTopSensitiveDataRsp API.",
        "title": "SensitiveDataCount",
        "x-displayname": "Sensitive Data Count.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.SensitiveDataCount",
        "properties": {
          "count": {
            "type": "integer",
            "description": "Number of APIEP detected this sensitive data type.",
            "title": "count",
            "format": "int32",
            "x-displayname": "API Count With This Sensitive Data Type.",
            "x-f5xc-example": "42",
            "x-f5xc-description-short": "Number of APIEP detected this sensitive data type.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "general",
              "minimum": 0,
              "maximum": 10000,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "sensitive_data_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/app_typeSensitiveDataType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "type": {
            "type": "string",
            "description": "The type of sensitive data detected in APIs.",
            "title": "sensitive_data_type",
            "x-displayname": "Type Of Sensitive Data.",
            "x-f5xc-description-short": "The type of sensitive data detected in APIs.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response model for GetTopSensitiveDataRsp API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostSensitiveDataCount",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostStatusObject": {
        "type": "object",
        "description": "Most recently observed status of object.",
        "title": "Status of Virtual host",
        "x-ves-proto-message": "ves.io.schema.virtual_host.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Object reference.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "VerStatusType shows list of other vhosts with which TLS coalescing is done.",
            "title": "ver_status",
            "items": {
              "$ref": "#/components/schemas/virtual_hostVerStatusType"
            },
            "x-displayname": "VER Status.",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "VerStatusType shows list of other vhosts with which TLS coalescing is done.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Most recently observed status of object.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostTicketDetails": {
        "type": "object",
        "description": "Ticket details from the ticket tracking system - JIRA, ServiceNow, etc.",
        "title": "Ticket Details",
        "x-displayname": "Ticket Details.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.TicketDetails",
        "properties": {
          "external_link": {
            "type": "string",
            "description": "Fully resolvable hyperlink w/ FQDN to the ticket.\nThis will be the ticket tracking system organization subdomain + external ID.",
            "title": "external_link",
            "x-displayname": "External Link.",
            "x-f5xc-description-short": "Fully resolvable hyperlink w/ FQDN to the ticket. This will be the ticket tracking system organization subdomain + external ID.",
            "x-f5xc-description-medium": "Fully resolvable hyperlink w/ FQDN to the ticket. This will be the ticket tracking system organization subdomain + external ID.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "jira_issue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ticket_managementJiraIssue"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ticket_tracking_system_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ticket_managementTicketTrackingSystemType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Ticket details from the ticket tracking system - JIRA, ServiceNow, etc.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostTicketDetails",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostUnlinkTicketsRequest": {
        "type": "object",
        "title": "UnlinkTicketsRequest",
        "x-displayname": "Unlink Tickets Request.",
        "x-ves-oneof-field-unlink_choice": "[\"label_filter\",\"ticket_uid\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.UnlinkTicketsRequest",
        "properties": {
          "label_filter": {
            "type": "string",
            "description": "Exclusive with [ticket_uid]\nA LabelSelectorType expression for targeting which tickets to unlink.",
            "title": "label_filter",
            "maxLength": 8096,
            "x-displayname": "Label Filter.",
            "x-ves-example": "Env in (staging, testing), tier in (web, db)",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-example": "env in (staging, testing), tier in (web, db)",
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "8096"
            },
            "x-f5xc-description-short": "Exclusive with [ticket_uid] A LabelSelectorType expression for targeting which tickets to unlink.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 8096,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "ticket_uid"
            ]
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "maxLength": 256,
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "blogging-app-vhost",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace for the ticket.",
            "title": "namespace",
            "maxLength": 256,
            "x-displayname": "Namespace",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.string.max_len": "256"
            },
            "x-f5xc-example": "example-resource",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 256,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "ticket_uid": {
            "type": "string",
            "description": "Exclusive with [label_filter]\nThe UID of the tickets to be unlinked.",
            "title": "Ticket UID",
            "maxLength": 128,
            "x-displayname": "Ticket UID.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.string.max_len": "128"
            },
            "x-f5xc-description-short": "Exclusive with [label_filter] The UID of the tickets to be unlinked.",
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "discovery",
              "maxLength": 128,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-conflicts-with": [
              "label_filter"
            ]
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostUnlinkTicketsRequest",
          "required_fields": [
            "name",
            "namespace"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"name\": \"blogging-app-vhost\",\n  \"namespace\": \"example-resource\"\n}",
          "example_yaml": "name: blogging-app-vhost\nnamespace: example-resource"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostUnlinkTicketsResponse": {
        "type": "object",
        "title": "UnlinkTicketsResponse",
        "x-displayname": "Unlink Tickets Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.UnlinkTicketsResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors related to ticket unlink.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostUnlinkTicketsResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostUnmergeAPIEPSourceOpenApiSchemaReq": {
        "type": "object",
        "description": "Unmerge Source from endpoint.",
        "title": "Unmerge certain endpoint source",
        "x-displayname": "Unmerge Source from endpoint.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.UnmergeAPIEPSourceOpenApiSchemaReq",
        "properties": {
          "discovery_source_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostAPIEPDiscoverySource"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "id": {
            "type": "string",
            "description": "Endpoint ID.",
            "title": "id",
            "x-displayname": "Endpoint ID.",
            "x-f5xc-example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-f5xc-example": "blogging-app-vhost",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "Namespace of the virtual host for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostUnmergeAPIEPSourceOpenApiSchemaReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostUpdateAPIEndpointsSchemasReq": {
        "type": "object",
        "description": "Request shape for Update API Endpoints Schemas.",
        "title": "Update API Endpoints Schemas Request",
        "x-displayname": "Update API Endpoints Schemas Request.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.UpdateAPIEndpointsSchemasReq",
        "properties": {
          "api_endpoints_schema_updates": {
            "type": "array",
            "description": "The list of API Inventory API endpoints schema updates.",
            "title": "API Endpoints Schema Updates",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/viewsApiEndpointWithSchema"
            },
            "x-displayname": "API Endpoints Schema Updates.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "100",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "100",
              "ves.io.schema.rules.repeated.min_items": "1"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of API Inventory API endpoints schema updates.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "minItems": 1,
              "maxItems": 100,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the Virtual Host for the current request.",
            "title": "Name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "x-f5xc-description-short": "The name of the Virtual Host for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace of the Virtual Host for the current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "The namespace of the Virtual Host for the current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-description-short": "Request shape for Update API Endpoints Schemas.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostUpdateAPIEndpointsSchemasReq",
          "required_fields": [
            "api_endpoints_schema_updates"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"api_endpoints_schema_updates\": [\n    {\n      \"schema_json\": \"{}\"\n    }\n  ]\n}",
          "example_yaml": "api_endpoints_schema_updates:\n- schema_json: '{}'"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostUpdateAPIEndpointsSchemasResp": {
        "type": "object",
        "description": "Response shape for Update API Endpoints With Newly Discovered Schema.",
        "title": "Update API Endpoints Schema Response",
        "x-displayname": "Update API Endpoints Schema Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.UpdateAPIEndpointsSchemasResp",
        "properties": {
          "updated_api_endpoints": {
            "type": "array",
            "description": "The list of API endpoints which were successfully proceeded by the API Inventory request.",
            "title": "Updated API Endpoints",
            "items": {
              "$ref": "#/components/schemas/viewsApiOperation"
            },
            "x-displayname": "Updated API Endpoints.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The list of API endpoints which were successfully proceeded by the API Inventory request.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response shape for Update API Endpoints With Newly Discovered Schema.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostUpdateAPIEndpointsSchemasResp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostUpdateVulnerabilitiesStateReq": {
        "type": "object",
        "description": "Request model for UpdateVulnerabilitiesStateReq API.",
        "title": "UpdateVulnerabilitiesStateReq",
        "x-displayname": "Update Vulnerability State.",
        "x-ves-oneof-field-context": "[\"api_endpoint\"]",
        "x-ves-proto-message": "ves.io.schema.virtual_host.UpdateVulnerabilitiesStateReq",
        "properties": {
          "api_endpoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemavirtual_hostAPIEndpoint"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "domain": {
            "type": "string",
            "description": "Domain for which vulnerability state should be updated.",
            "title": "Domain",
            "x-displayname": "Domain",
            "x-ves-example": "www.example.com.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "www.example.com",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-description-short": "Domain for which vulnerability state should be updated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "name": {
            "type": "string",
            "description": "Virtual Host name for current request.",
            "title": "Virtual Host Name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app-vhost.",
            "x-f5xc-example": "blogging-app-vhost",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace of the virtual host for current request.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "Namespace of the virtual host for current request.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "vuln_id": {
            "type": "string",
            "description": "Vulnerability ID.",
            "title": "vulnerability_id",
            "x-displayname": "Vulnerability ID.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "x-f5xc-example": "HTTP_SUPPORTED_AND_HSTS_NOT_SET",
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true"
            },
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "vuln_state": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnStatus"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request model for UpdateVulnerabilitiesStateReq API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostUpdateVulnerabilitiesStateReq",
          "required_fields": [
            "domain",
            "vuln_id"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"domain\": \"www.example.com\",\n  \"vuln_id\": \"HTTP_SUPPORTED_AND_HSTS_NOT_SET\"\n}",
          "example_yaml": "domain: www.example.com\nvuln_id: HTTP_SUPPORTED_AND_HSTS_NOT_SET"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostUpdateVulnerabilitiesStateRsp": {
        "type": "object",
        "description": "Response model for UpdateVulnerabilitiesStateRsp API.",
        "title": "UpdateVulnerabilitiesStateRsp",
        "x-displayname": "UpdateVulnerabilitiesStateRsp API Response.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.UpdateVulnerabilitiesStateRsp",
        "x-f5xc-description-short": "Response model for UpdateVulnerabilitiesStateRsp API.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostUpdateVulnerabilitiesStateRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVerStatusType": {
        "type": "object",
        "description": "This VER status is per site on which virtual host configuration is getting applied.",
        "title": "VER status for Virtual Host",
        "x-displayname": "VER Status.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.VerStatusType",
        "properties": {
          "advertise_policy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaviewsObjectRefType"
              }
            ],
            "x-f5xc-description-short": "Policy configuration for this feature.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": "advertise_policy",
                "field_path": "advertise_policy",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "coalesced_vhosts": {
            "type": "array",
            "description": "List of virtual hosts with which TLS coalescing is done.",
            "title": "TLS coalesced virtual hosts",
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "TLS Coalesced VirtualHosts.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of virtual hosts with which TLS coalescing is done.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "non_coalesced_vhosts": {
            "type": "array",
            "description": "List of virtual hosts having same server certificates and supposed to be\ncoalesced but not coalesced due to mismatch is some configuration.",
            "title": "TLS coalescing skipped virtual hosts",
            "items": {
              "$ref": "#/components/schemas/schemaviewsObjectRefType"
            },
            "x-displayname": "TLS Coalescing skipped VirtualHosts.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.repeated.unique": "true"
            },
            "x-f5xc-description-short": "List of virtual hosts having same server certificates and supposed to be coalesced but not coalesced due to mismatch is some configuration.",
            "x-f5xc-description-medium": "List of virtual hosts having same server certificates and supposed to be coalesced but not coalesced due to mismatch is some configuration.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "uniqueItems": true,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "VER status is per site on which virtual host configuration is getting applied.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVerStatusType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVirtualHostType": {
        "type": "string",
        "description": "VirtualHostType tells the type of virtual_host. Functionally, all types are same,\nthis is mainly used for categorizing metrics.\n\n- VIRTUAL_SERVICE: VirtualService\n\nVirtual Host used Virtual Service\n- HTTP_LOAD_BALANCER: HTTP LoadBalancer\n\nVirtual Host used as Load Balancer\n- API_GATEWAY: APIGateway\n\nVirtual Host used API Gateway\n- TCP_LOAD_BALANCER: TCP LoadBalancer\n\nVirtual Host used as Load Balancer\n- PROXY: Proxy\n\nVirtual Host used as Proxy\n- LOCAL_K8S_API_GATEWAY: LOCAL_K8S_API_GATEWAY\n\nInternal use only, used for K8s cluster API gateway on the site.\n- CDN_LOAD_BALANCER: CDN LoadBalancer\n\nVirtual Host used as Load Balancer\n- NGINX_SERVER: NGINX Server\n\nVirtual Host representing an NGINX Server block\n- BIGIP_VIRTUAL_SERVER: BIG-IP Virtual Server\n\nVirtual Host representing a BIG-IP Virtual Server\n- UDP_LOAD_BALANCER: UDP LoadBalancer\n\nVirtual Host used as Load Balancer\n- TMM_PROXY: TMM Proxy\n\nVirtual Host for TMM Proxy\n- THIRD_PARTY_APPLICATION: THIRD PARTY Virtual Server\n\nVirtual Host representing a Third Party Application.",
        "title": "VirtualHostType",
        "enum": [
          "VIRTUAL_SERVICE",
          "HTTP_LOAD_BALANCER",
          "API_GATEWAY",
          "TCP_LOAD_BALANCER",
          "PROXY",
          "CDN_LOAD_BALANCER",
          "NGINX_SERVER",
          "UDP_LOAD_BALANCER"
        ],
        "default": "VIRTUAL_SERVICE",
        "x-displayname": "Virtual Host Type.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.VirtualHostType",
        "x-f5xc-description-short": "VirtualHostType tells the type of virtual_host.",
        "x-f5xc-description-medium": "VirtualHostType tells the type of virtual_host. Functionally, all types are same, this is mainly used for categorizing metrics. - VIRTUAL_SERVICE: VirtualService Virtual Host used Virtual Service - HTTP_LOAD_BALANCER: HTTP LoadBalancer Virtual Host used as Load Balancer - API_GATEWAY: APIGateway...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVirtualHostType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"VIRTUAL_SERVICE\"",
          "example_yaml": "VIRTUAL_SERVICE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnContext": {
        "type": "string",
        "description": "Context of where vulnerability found\n\nVulnerability has been identified at API Endpoint level.\nVulnerability has been identified at API BasePath level.\nVulnerability has been identified at Domain level.",
        "title": "Context",
        "enum": [
          "CONTEXT_API_ENDPOINT",
          "CONTEXT_API_BASEPATH",
          "CONTEXT_API_DOMAIN"
        ],
        "default": "CONTEXT_API_ENDPOINT",
        "x-displayname": "Context",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.VulnContext",
        "x-f5xc-description-short": "Context of where vulnerability found Vulnerability has been identified at API Endpoint level.",
        "x-f5xc-description-medium": "Context of where vulnerability found Vulnerability has been identified at API Endpoint level. Vulnerability has been identified at API BasePath level. Vulnerability has been identified at Domain level.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnContext",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"CONTEXT_API_ENDPOINT\"",
          "example_yaml": "CONTEXT_API_ENDPOINT\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnEvidence": {
        "type": "object",
        "description": "Evidence of the vulnerability found.",
        "title": "Evidence",
        "x-displayname": "Evidence",
        "x-ves-proto-message": "ves.io.schema.virtual_host.VulnEvidence",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End_time is the time when vulnerability evidence\nappeared last.\nIt is the UTC time and represented in RFC3339 form.",
            "title": "end_time",
            "format": "date-time",
            "x-displayname": "End Time",
            "x-f5xc-description-short": "End_time is the time when vulnerability evidence appeared last. It is the UTC time and represented in RFC3339 form.",
            "x-f5xc-description-medium": "End_time is the time when vulnerability evidence appeared last. It is the UTC time and represented in RFC3339 form.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "evidence_type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnEvidenceType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "samples": {
            "type": "array",
            "description": "Samples due to which vulnerability was found.",
            "title": "samples",
            "items": {
              "$ref": "#/components/schemas/virtual_hostVulnEvidenceSample"
            },
            "x-displayname": "Samples",
            "x-f5xc-description-short": "Samples due to which vulnerability was found.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Start_time is the time when vulnerability evidence\nappeared first.\nIt is the UTC time and represented in RFC3339 form.",
            "title": "start_time",
            "format": "date-time",
            "x-displayname": "Start Time.",
            "x-f5xc-description-short": "Start_time is the time when vulnerability evidence appeared first. It is the UTC time and represented in RFC3339 form.",
            "x-f5xc-description-medium": "Start_time is the time when vulnerability evidence appeared first. It is the UTC time and represented in RFC3339 form.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnEvidence",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnEvidenceSample": {
        "type": "object",
        "description": "Vulnerability evidence sample due to which vulnerability was found.",
        "title": "VulnEvidenceSample",
        "x-displayname": "Vulnerability evidence sample.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.VulnEvidenceSample",
        "properties": {
          "details": {
            "type": "array",
            "description": "List of details due to which vulnerability was found.",
            "title": "details",
            "items": {
              "type": "string"
            },
            "x-displayname": "List of details.",
            "x-f5xc-description-short": "List of details due to which vulnerability was found.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "req_id": {
            "type": "string",
            "description": "Request ID where vulnerability was found.",
            "title": "req_id",
            "x-displayname": "Request ID.",
            "x-f5xc-description-short": "Request ID where vulnerability was found.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "Vulnerability evidence sample due to which vulnerability was found.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnEvidenceSample",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnEvidenceType": {
        "type": "string",
        "description": "Evidence Type where vulnerability found\n\nVulnerability has been identified in requests.\nVulnerability has been identified in sec-events.\nVulnerability has been identified in sec-incidents.",
        "title": "EvidenceType",
        "enum": [
          "EVIDENCE_TYPE_REQUESTS",
          "EVIDENCE_TYPE_SEC_EVENTS",
          "EVIDENCE_TYPE_SEC_INCIDENTS"
        ],
        "default": "EVIDENCE_TYPE_REQUESTS",
        "x-displayname": "Evidence Type.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.VulnEvidenceType",
        "x-f5xc-description-short": "Evidence Type where vulnerability found Vulnerability has been identified in requests.",
        "x-f5xc-description-medium": "Evidence Type where vulnerability found Vulnerability has been identified in requests. Vulnerability has been identified in sec-events. Vulnerability has been identified in sec-incidents.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnEvidenceType",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"EVIDENCE_TYPE_REQUESTS\"",
          "example_yaml": "EVIDENCE_TYPE_REQUESTS\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnRisk": {
        "type": "object",
        "description": "Risk of the vulnerability found.",
        "title": "Risk",
        "x-displayname": "Risk",
        "x-ves-proto-message": "ves.io.schema.virtual_host.VulnRisk",
        "properties": {
          "level": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnRiskLevel"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "score": {
            "type": "number",
            "description": "Risk score of the vulnerability found.",
            "title": "score",
            "format": "float",
            "x-displayname": "Score",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnRisk",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnRiskLevel": {
        "type": "string",
        "description": "Risk level of the vulnerability found\n\nRisk level is not detected (for example, when no traffic).\nVulnerability has low security risk.\nVulnerability has medium security risk.\nVulnerability has high security risk.\nVulnerability has critical security risk.",
        "title": "Risk Level",
        "enum": [
          "RISK_LEVEL_NONE",
          "RISK_LEVEL_LOW",
          "RISK_LEVEL_MED",
          "RISK_LEVEL_HIGH",
          "RISK_LEVEL_CRITICAL"
        ],
        "default": "RISK_LEVEL_NONE",
        "x-displayname": "Risk Level.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.VulnRiskLevel",
        "x-f5xc-description-short": "Risk level of the vulnerability found Risk level is not detected (for example, when no traffic).",
        "x-f5xc-description-medium": "Risk level of the vulnerability found Risk level is not detected (for example, when no traffic). Vulnerability has low security risk. Vulnerability has medium security risk.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnRiskLevel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"RISK_LEVEL_NONE\"",
          "example_yaml": "RISK_LEVEL_NONE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnStatus": {
        "type": "string",
        "description": "Status of vulnerability found\n\nVulnerability has no status\nVulnerability has open status and it will be under Active tab\nVulnerability has ignore status\nThe vulnerability Ignored manually and it will be under Archived tab\nThe next Discovery process should ignore the vulnerability.\nVulnerability has resolution status\nThe vulnerability resolved manually and it will be under Archived tab\nThe next Discovery process should validate the resolution and reopen (Move to Active and mark as Open) if not resolved.\nVulnerability has under review status and it will be under Active tab\nThe vulnerability under security or development team responsibility.",
        "title": "Status",
        "enum": [
          "STATUS_NONE",
          "STATUS_OPEN",
          "STATUS_IGNORE",
          "STATUS_RESOLUTION_CONFIRMED",
          "STATUS_UNDER_REVIEW"
        ],
        "default": "STATUS_NONE",
        "x-displayname": "Status",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.VulnStatus",
        "x-f5xc-description-short": "Status of vulnerability found Vulnerability has no status Vulnerability has open status and it will be under Active tab Vulnerability has ignore...",
        "x-f5xc-description-medium": "Status of vulnerability found Vulnerability has no status Vulnerability has open status and it will be under Active tab Vulnerability has ignore status The vulnerability Ignored manually and it will be under Archived tab The next Discovery process should ignore the vulnerability. Vulnerability...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnStatus",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"STATUS_NONE\"",
          "example_yaml": "STATUS_NONE\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnerability": {
        "type": "object",
        "description": "Vulnerability object.",
        "title": "Vulnerability",
        "x-displayname": "Vulnerability.",
        "x-ves-proto-message": "ves.io.schema.virtual_host.Vulnerability",
        "properties": {
          "category": {
            "type": "string",
            "description": "Category of the vulnerability found.",
            "title": "category",
            "x-displayname": "Category",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "context": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnContext"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "creation_time": {
            "type": "string",
            "description": "Creation_time is the time when the vulnerability\nwas created by the discovery mechanism.\nIt is the UTC time and represented in RFC3339 form.",
            "title": "creation_time",
            "format": "date-time",
            "x-displayname": "Creation Time.",
            "x-f5xc-description-short": "Creation_time is the time when the vulnerability was created by the discovery mechanism.",
            "x-f5xc-description-medium": "Creation_time is the time when the vulnerability was created by the discovery mechanism. It is the UTC time and represented in RFC3339 form.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "Description of the vulnerability found.",
            "title": "description",
            "x-displayname": "Description.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "domain": {
            "type": "string",
            "description": "Domain of the vulnerability found.",
            "title": "domain",
            "x-displayname": "Domain",
            "x-ves-example": "www.example.com.",
            "x-f5xc-example": "www.example.com",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 26,
            "format": "hostname",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "evidence": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnEvidence"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "last_observed_time": {
            "type": "string",
            "description": "Last_observed_time is the time when the vulnerability\nwas last observed by the discovery mechanism.\nIt is the UTC time and represented in RFC3339 form.",
            "title": "last_observed_time",
            "format": "date-time",
            "x-displayname": "Last Observed Time.",
            "x-f5xc-description-short": "Last_observed_time is the time when the vulnerability was last observed by the discovery mechanism.",
            "x-f5xc-description-medium": "Last_observed_time is the time when the vulnerability was last observed by the discovery mechanism. It is the UTC time and represented in RFC3339 form.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_type": {
            "type": "string",
            "description": "Type of the objects which the vulnerability refers to.",
            "title": "object_type",
            "x-displayname": "Object Type.",
            "x-ves-example": "Cookie",
            "x-f5xc-example": "Cookie",
            "x-f5xc-description-short": "Type of the objects which the vulnerability refers to.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "objects": {
            "type": "array",
            "description": "Objects which the vulnerability refers to.",
            "title": "objects",
            "items": {
              "type": "string"
            },
            "x-displayname": "Objects",
            "x-f5xc-example": "[\"/documents/group/{dyn}\"]",
            "x-f5xc-description-short": "Objects which the vulnerability refers to.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "owasp_categories": {
            "type": "array",
            "description": "Categories of the vulnerability as per the OWASP API Top 10.",
            "title": "owasp_categories",
            "items": {
              "$ref": "#/components/schemas/schemaOwaspCategory"
            },
            "x-displayname": "OWASP Categories.",
            "x-f5xc-description-short": "Categories of the vulnerability as per the OWASP API Top 10.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "remediation": {
            "type": "array",
            "description": "Remediation of the vulnerability found.",
            "title": "remediation",
            "items": {
              "type": "string"
            },
            "x-displayname": "Remediation.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "risk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnRisk"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "source": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnerabilitySource"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostVulnStatus"
              }
            ],
            "x-f5xc-example": "active",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "status_change_time": {
            "type": "string",
            "description": "Status_change_time is the time when the vulnerability\nstatus was updated by the discovery mechanism.\nIt is the UTC time and represented in RFC3339 form.",
            "title": "status_change_time",
            "format": "date-time",
            "x-displayname": "Status Change Time.",
            "x-f5xc-description-short": "Status_change_time is the time when the vulnerability status was updated by the discovery mechanism.",
            "x-f5xc-description-medium": "Status_change_time is the time when the vulnerability status was updated by the discovery mechanism. It is the UTC time and represented in RFC3339 form.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "format": "date-time",
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "ticket": {
            "allOf": [
              {
                "$ref": "#/components/schemas/virtual_hostTicketDetails"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "title": {
            "type": "string",
            "description": "Title of the vulnerability found.",
            "title": "title",
            "x-displayname": "Title",
            "x-f5xc-example": "example-resource",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 6,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "vuln_id": {
            "type": "string",
            "description": "Vulnerability ID.",
            "title": "vulnerability_id",
            "x-displayname": "Vulnerability_id.",
            "x-f5xc-example": "HTTP_SUPPORTED_AND_HSTS_NOT_SET",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnerability",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "virtual_hostVulnerabilitySource": {
        "type": "string",
        "description": "The Source of Vulnerability\n\n- VULNERABILITY_SOURCE_UNSPECIFIED: Source unspecified\n- VULNERABILITY_SOURCE_TRAFFIC_ANALYSIS: Source Traffic Analysis\n- VULNERABILITY_SOURCE_API_TESTING: Source API Testing.",
        "title": "Vulnerability Source",
        "enum": [
          "VULNERABILITY_SOURCE_UNSPECIFIED",
          "VULNERABILITY_SOURCE_TRAFFIC_ANALYSIS",
          "VULNERABILITY_SOURCE_API_TESTING"
        ],
        "default": "VULNERABILITY_SOURCE_UNSPECIFIED",
        "x-displayname": "Vulnerability Source.",
        "x-ves-proto-enum": "ves.io.schema.virtual_host.VulnerabilitySource",
        "x-f5xc-description-short": "The Source of Vulnerability - VULNERABILITY_SOURCE_UNSPECIFIED: Source unspecified - VULNERABILITY_SOURCE_TRAFFIC_ANALYSIS: Source Traffic...",
        "x-f5xc-description-medium": "The Source of Vulnerability - VULNERABILITY_SOURCE_UNSPECIFIED: Source unspecified - VULNERABILITY_SOURCE_TRAFFIC_ANALYSIS: Source Traffic Analysis - VULNERABILITY_SOURCE_API_TESTING: Source API Testing.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for virtual_hostVulnerabilitySource",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"VULNERABILITY_SOURCE_UNSPECIFIED\"",
          "example_yaml": "VULNERABILITY_SOURCE_UNSPECIFIED\n..."
        },
        "x-f5xc-cli-domain": "other",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "system"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "system",
            "alternatives": [],
            "rationale": "Virtual host configuration is platform-level"
          },
          "classification": {
            "category": "networking",
            "multi_tenant_pattern": "none"
          }
        }
      },
      "schemawafMetricLabelOp": {
        "type": "string",
        "description": "The operator to use when querying WAF metrics with labels.\nQuery can choose to either select a label if it matches a given value OR\nif it done not match a given value. This is done by choosing the EQ or NEQ operator\nin MetricLabelFilter\n\nEqual to\nNot Equal to.",
        "title": "WAF Metric Label Operator",
        "enum": [
          "EQ",
          "NEQ"
        ],
        "default": "EQ",
        "x-displayname": "WAF Metric Label Operator.",
        "x-ves-proto-enum": "ves.io.schema.waf.MetricLabelOp",
        "x-f5xc-description-short": "The operator to use when querying WAF metrics with labels.",
        "x-f5xc-description-medium": "The operator to use when querying WAF metrics with labels. Query can choose to either select a label if it matches a given value OR if it done not match a given value. This is done by choosing the EQ or NEQ operator in MetricLabelFilter Equal to Not Equal to.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemawafMetricLabelOp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"EQ\"",
          "example_yaml": "EQ\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafMetricLabel": {
        "type": "string",
        "description": "Labels in the WAF metrics.\n\nRule hits counter and the security events counter can be sliced and diced based\non one or more labels listed below.\n\nNamespace in which this WAF instance is running\nAppType configured on the virtual_host under which this WAF instance is running\nVirtual host under which this WAF instance is running\nSite from which this WAF instance is reporting the metrics\nService for which this WAF instance is reporting the metrics\nRegion from which the client's accesses caused WAF metrics to be generated\nWAF instance ID\nRuleID of the rule that was hit to cause this metric to be generated\nRule severity of the rule that was hit to cause this metric to be generated\nRule tag of the rule that was hit to cause this metric to be generated\nBlock or AlertOnly\nType of the Bot (crawler, scanner, script)\nName of the Bot associated with the WAF rule.",
        "enum": [
          "NAMESPACE",
          "APP_TYPE",
          "VIRTUAL_HOST",
          "SITE",
          "SERVICE",
          "INSTANCE",
          "WAF_INSTANCE_ID",
          "RULE_ID",
          "RULE_SEVERITY",
          "RULE_TAG",
          "WAF_MODE",
          "BOT_TYPE",
          "BOT_NAME"
        ],
        "default": "NAMESPACE",
        "x-displayname": "WAF Metric Label.",
        "x-ves-proto-enum": "ves.io.schema.waf.MetricLabel",
        "x-f5xc-description-short": "Labels in the WAF metrics. Rule hits counter and the security events counter can be sliced and diced based on one or more labels listed below.",
        "x-f5xc-description-medium": "Labels in the WAF metrics. Rule hits counter and the security events counter can be sliced and diced based on one or more labels listed below. Namespace in which this WAF instance is running AppType configured on the virtual_host under which this WAF instance is running Virtual host under which...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafMetricLabel",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "\"NAMESPACE\"",
          "example_yaml": "NAMESPACE\n..."
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafMetricLabelFilter": {
        "type": "object",
        "description": "Label based filtering of WAF metrics.\n\nWAF metrics are tagged with labels mentioned in MetricLabel.\nMetric label filter can be specified to query specific metrics based on label match.",
        "x-displayname": "WAF Metric Label Filter.",
        "x-ves-proto-message": "ves.io.schema.waf.MetricLabelFilter",
        "properties": {
          "label": {
            "allOf": [
              {
                "$ref": "#/components/schemas/wafMetricLabel"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "op": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemawafMetricLabelOp"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "value": {
            "type": "string",
            "description": "Value to be compared with.",
            "title": "Value",
            "x-displayname": "Value",
            "x-ves-example": "Blogging-app-namespace-1.",
            "x-f5xc-example": "blogging-app-namespace-1",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 3,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "Label based filtering of WAF metrics. WAF metrics are tagged with labels mentioned in MetricLabel.",
        "x-f5xc-description-medium": "Label based filtering of WAF metrics. WAF metrics are tagged with labels mentioned in MetricLabel. Metric label filter can be specified to query specific metrics based on label match.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafMetricLabelFilter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafRuleHitsCountRequest": {
        "type": "object",
        "description": "Request to GET number of rule hits per client/server for a given namespace.",
        "title": "RuleHitsCountRequest",
        "x-displayname": "Rule Hits Count Request.",
        "x-ves-proto-message": "ves.io.schema.waf.RuleHitsCountRequest",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "End time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "End time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "End time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "group_by": {
            "type": "array",
            "description": "Aggregate data by one of more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, RULE_ID, RULE_SEVERITY, RULE_TAG.\n\nOptional: If not specified, then the rule hits are aggregated/grouped by VIRTUAL_HOST.",
            "title": "Group by",
            "items": {
              "$ref": "#/components/schemas/wafMetricLabel"
            },
            "x-displayname": "Group By",
            "x-f5xc-description-short": "Aggregate data by one of more labels listed here.",
            "x-f5xc-description-medium": "Aggregate data by one of more labels listed here. NAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, RULE_ID, RULE_SEVERITY, RULE_TAG. Optional: If not specified, then the rule hits are aggregated/grouped by VIRTUAL_HOST.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_filter": {
            "type": "array",
            "description": "List of label filter expressions of the form \"label\" Op \"value\".\nResponse will only contain data that matches all the conditions specified in the label_filter.\nOne or more of the following labels can be specified in the label_filter.\nAPP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, RULE_ID, RULE_SEVERITY, RULE_TAG.\n\nOptional: If not specified, then the metrics will be filtered only based on the namespace in the request.",
            "title": "Label Filter",
            "items": {
              "$ref": "#/components/schemas/wafMetricLabelFilter"
            },
            "x-displayname": "Label Filter.",
            "x-f5xc-description-short": "List of label filter expressions of the form \"label\" Op \"value\".",
            "x-f5xc-description-medium": "List of label filter expressions of the form \"label\" Op \"value\". Response will only contain data that matches all the conditions specified in the label_filter. One or more of the following labels can be specified in the label_filter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace is used to scope the WAF rule hits for the given namespace.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Namespace is used to scope the WAF rule hits for the given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "range": {
            "type": "string",
            "description": "Range decides how far to go back in time to fetch values for each step.\nFor example, if the range is 5m, then for step t1, query will be evaluated for t1-5m and for\nt2, query will be evaluated for t2-5m and so on.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nNote: For non-timeseries query, i.e., for step=end_time-start_time, range should be set to end_time-start_time\n\nOptional: If not specified, range is set to 5m.",
            "title": "Range",
            "x-displayname": "Range",
            "x-ves-example": "50m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "50m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Range decides how far to go back in time to fetch values for each step.",
            "x-f5xc-description-medium": "Range decides how far to go back in time to fetch values for each step. For example, if the range is 5m, then for step t1, query will be evaluated for t1-5m and for t2, query will be evaluated for t2-5m and so on. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Start time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "Start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Start time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "Start time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.\nThe timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nOptional: If not specified, then step size is evaluated to <end_time - start_time>",
            "title": "Step",
            "x-displayname": "Step",
            "x-ves-example": "5m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-example": "5m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-description-short": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.",
            "x-f5xc-description-medium": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response. The timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET number of rule hits per client/server for a given namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafRuleHitsCountRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafRuleHitsCountResponse": {
        "type": "object",
        "description": "Number of rule hits for each unique combination of group_by labels in the RuleHitsCountRequest.",
        "title": "RuleHitsCountResponse",
        "x-displayname": "Rule Hits Count Response.",
        "x-ves-proto-message": "ves.io.schema.waf.RuleHitsCountResponse",
        "properties": {
          "data": {
            "type": "array",
            "description": "List of rule hits counter data.",
            "title": "Rule hits counter",
            "items": {
              "$ref": "#/components/schemas/wafRuleHitsCounter"
            },
            "x-displayname": "Rule hits counter.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "title": "step",
            "x-displayname": "Step",
            "x-ves-example": "30m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "30m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.",
            "x-f5xc-description-medium": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Number of rule hits for each unique combination of group_by labels in the RuleHitsCountRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafRuleHitsCountResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafRuleHitsCounter": {
        "type": "object",
        "description": "RuleHitsCounter contains the timeseries data of rule hits counter.",
        "title": "Rule Hits Counter",
        "x-displayname": "Rule Hits Counter.",
        "x-ves-proto-message": "ves.io.schema.waf.RuleHitsCounter",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/wafRuleHitsId"
              }
            ],
            "x-f5xc-example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metric": {
            "type": "array",
            "description": "List of metric values.",
            "title": "Metric Values",
            "items": {
              "$ref": "#/components/schemas/schemaMetricValue"
            },
            "x-displayname": "Metric Values.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "RuleHitsCounter contains the timeseries data of rule hits counter.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafRuleHitsCounter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafRuleHitsId": {
        "type": "object",
        "description": "RuleHitsId uniquely identifies an entry in the response for rule_hits metrics query.\nRule hits counter is aggregated based on the MetricLabel specified in the group_by field in the request.\nTherefore, only the fields that corresponds to the MetricLabel in the group_by will have non-empty\nvalue in the response.",
        "title": "RuleHitsId",
        "x-displayname": "Rule Hits ID.",
        "x-ves-proto-message": "ves.io.schema.waf.RuleHitsId",
        "properties": {
          "app_type": {
            "type": "string",
            "description": "AppType configured on the virtual_host under which this WAF instance is running.",
            "title": "AppType",
            "x-displayname": "AppType",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "AppType configured on the virtual_host under which this WAF instance is running.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_name": {
            "type": "string",
            "description": "Name of the Bot associated with the WAF rule.",
            "title": "Bot Name",
            "x-displayname": "Bot Name",
            "x-ves-example": "Whatweb",
            "x-f5xc-example": "whatweb",
            "x-f5xc-description-short": "Name of the Bot associated with the WAF rule.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_type": {
            "type": "string",
            "description": "Type of Bot (crawler, scanner, script)",
            "title": "Bot Type",
            "x-displayname": "Bot Type",
            "x-ves-example": "Scanner",
            "x-f5xc-example": "scanner",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "instance": {
            "type": "string",
            "description": "Region from which the client's accesses caused WAF metrics to be generated.",
            "title": "Instance",
            "x-displayname": "Instance",
            "x-ves-example": "India",
            "x-f5xc-example": "India",
            "x-f5xc-description-short": "Region from which the client's accesses caused WAF metrics to be generated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which this WAF instance is running.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app-namespace-1.",
            "x-f5xc-example": "blogging-app-namespace-1",
            "x-f5xc-description-short": "Namespace in which this WAF instance is running.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "rule_id": {
            "type": "string",
            "description": "RuleID of the rule that was hit to cause this metric to be generated.",
            "title": "Rule ID",
            "x-displayname": "Rule ID",
            "x-ves-example": "941210",
            "x-f5xc-example": "941210",
            "x-f5xc-description-short": "RuleID of the rule that was hit to cause this metric to be generated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "rule_severity": {
            "type": "string",
            "description": "Rule severity of the rule that was hit to cause this metric to be generated.",
            "title": "Rule Severity",
            "x-displayname": "Rule Severity.",
            "x-ves-example": "CRITICAL",
            "x-f5xc-example": "CRITICAL",
            "x-f5xc-description-short": "Rule severity of the rule that was hit to cause this metric to be generated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "rule_tag": {
            "type": "string",
            "description": "Rule tag of the rule that was hit to cause this metric to be generated.",
            "title": "Rule Tag",
            "x-displayname": "Rule Tag",
            "x-ves-example": "CAPEC-272",
            "x-f5xc-example": "CAPEC-272",
            "x-f5xc-description-short": "Rule tag of the rule that was hit to cause this metric to be generated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "service": {
            "type": "string",
            "description": "Service for which this WAF instance is reporting the metrics.",
            "title": "Service",
            "x-displayname": "Service",
            "x-ves-example": "N:greatblogs-CE.",
            "x-f5xc-example": "N:greatblogs-ce",
            "x-f5xc-description-short": "Service for which this WAF instance is reporting the metrics.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site": {
            "type": "string",
            "description": "Site from which this WAF instance is reporting the metrics.",
            "title": "Site",
            "x-displayname": "Site",
            "x-ves-example": "Greatblogs-CE.",
            "x-f5xc-example": "greatblogs-ce",
            "x-f5xc-description-short": "Site from which this WAF instance is reporting the metrics.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_host": {
            "type": "string",
            "description": "Virtual host under which this WAF instance is running.",
            "title": "Virtual Host",
            "x-displayname": "Virtual Host.",
            "x-ves-example": "VS:greatblogs-vhost.",
            "x-f5xc-example": "VS:greatblogs-vhost",
            "x-f5xc-description-short": "Virtual host under which this WAF instance is running.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "waf_instance_id": {
            "type": "string",
            "description": "WAF instance ID.",
            "title": "WAF Instance ID",
            "x-displayname": "WAF Instance ID.",
            "x-ves-example": "Blogging-app-namespace-1:generated-WAF-rules-greatblogs-WAF.",
            "x-f5xc-example": "blogging-app-namespace-1:generated-waf-rules-greatblogs-waf",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-description-short": "RuleHitsId uniquely identifies an entry in the response for rule_hits metrics query.",
        "x-f5xc-description-medium": "RuleHitsId uniquely identifies an entry in the response for rule_hits metrics query. Rule hits counter is aggregated based on the MetricLabel specified in the group_by field in the request. Therefore, only the fields that corresponds to the MetricLabel in the group_by will have non-empty value...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafRuleHitsId",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafSecurityEventsCountRequest": {
        "type": "object",
        "description": "Request to GET number of security events per client/server for a given namespace.",
        "title": "SecurityEventsCountRequest",
        "x-displayname": "Security Events Count Request.",
        "x-ves-proto-message": "ves.io.schema.waf.SecurityEventsCountRequest",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "End time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the end_time will be evaluated to start_time+10m\nIf start_time is not specified, then the end_time will be evaluated to <current time>",
            "title": "End time",
            "x-displayname": "End Time",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "End time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "End time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the end_time will be evaluated to start_time+10m If start_time is not specified, then the end_time will be evaluated to <current time>.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "group_by": {
            "type": "array",
            "description": "Aggregate data by one or more labels listed here.\nNAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, WAF_MODE.\n\nOptional: If not specified, then the rule hits are aggregated/grouped by VIRTUAL_HOST.",
            "title": "Group by",
            "items": {
              "$ref": "#/components/schemas/wafMetricLabel"
            },
            "x-displayname": "Group By",
            "x-f5xc-description-short": "Aggregate data by one or more labels listed here. NAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, WAF_MODE.",
            "x-f5xc-description-medium": "Aggregate data by one or more labels listed here. NAMESPACE, APP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, WAF_MODE. Optional: If not specified, then the rule hits are aggregated/grouped by VIRTUAL_HOST.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "label_filter": {
            "type": "array",
            "description": "List of label filter expressions of the form \"label\" Op \"value\".\nResponse will only contain data that matches all the conditions specified in the label_filter.\nOne or more of the following labels can be specified in the label_filter.\nAPP_TYPE, VIRTUAL_HOST, SITE, SERVICE, INSTANCE, WAF_INSTANCE_ID, WAF_MODE.\n\nOptional: If not specified, then the metrics will be filtered only based on the namespace in the request.",
            "title": "Label Filter",
            "items": {
              "$ref": "#/components/schemas/wafMetricLabelFilter"
            },
            "x-displayname": "Label Filter.",
            "x-f5xc-description-short": "List of label filter expressions of the form \"label\" Op \"value\".",
            "x-f5xc-description-medium": "List of label filter expressions of the form \"label\" Op \"value\". Response will only contain data that matches all the conditions specified in the label_filter. One or more of the following labels can be specified in the label_filter.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace is used to scope the WAF security events for the given namespace.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Bloggin-app-namespace-1.",
            "x-f5xc-example": "bloggin-app-namespace-1",
            "x-f5xc-description-short": "Namespace is used to scope the WAF security events for the given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "range": {
            "type": "string",
            "description": "Range decides how far to go back in time to fetch values for each step.\nFor example, if the range is 5m, then for step t1, query will be evaluated for t1-5m and for\nt2, query will be evaluated for t2-5m and so on.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nNote: For non-timeseries query, i.e., for step=end_time-start_time, range should be set to end_time-start_time\n\nOptional: If not specified, range is set to 5m.",
            "title": "Range",
            "x-displayname": "Range",
            "x-ves-example": "45m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "45m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Range decides how far to go back in time to fetch values for each step.",
            "x-f5xc-description-medium": "Range decides how far to go back in time to fetch values for each step. For example, if the range is 5m, then for step t1, query will be evaluated for t1-5m and for t2, query will be evaluated for t2-5m and so on. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "start_time": {
            "type": "string",
            "description": "Start time of metric collection from which data will be considered.\nFormat: unix_timestamp|RFC 3339\n\nOptional: If not specified, then the start_time will be evaluated to end_time-10m\nIf end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "title": "Start time",
            "x-displayname": "Start Time.",
            "x-ves-example": "1570007981.",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-example": "1570007981",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_time": "true"
            },
            "x-f5xc-description-short": "Start time of metric collection from which data will be considered.",
            "x-f5xc-description-medium": "Start time of metric collection from which data will be considered. Format: unix_timestamp|RFC 3339 Optional: If not specified, then the start_time will be evaluated to end_time-10m If end_time is not specified, then the start_time will be evaluated to <current time>-10m.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.\nThe timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days\n\nOptional: If not specified, then step size is evaluated to <end_time - start_time>",
            "title": "Step",
            "x-displayname": "Step",
            "x-ves-example": "15m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-example": "15m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.query_step": "true"
            },
            "x-f5xc-description-short": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response.",
            "x-f5xc-description-medium": "Step is the resolution width, which determines the number of the data points [x-axis (time)] to be returned in the response. The timestamps in the response will be t1=start_time, t2=t1+step, ... Tn=tn-1+step, where tn <= end_time.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET number of security events per client/server for a given namespace.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafSecurityEventsCountRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafSecurityEventsCountResponse": {
        "type": "object",
        "description": "Number of security events for each unique combination of group_by labels in the SecurityEventsCountRequest.",
        "title": "SecurityEventsCountResponse",
        "x-displayname": "Security Events Count Response.",
        "x-ves-proto-message": "ves.io.schema.waf.SecurityEventsCountResponse",
        "properties": {
          "data": {
            "type": "array",
            "description": "List of security events counter data.",
            "title": "Security events counter data",
            "items": {
              "$ref": "#/components/schemas/wafSecurityEventsCounter"
            },
            "x-displayname": "Security events counter data.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "step": {
            "type": "string",
            "description": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.\nFormat: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "title": "step",
            "x-displayname": "Step",
            "x-ves-example": "30m",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-example": "30m",
            "x-validation-rules": {
              "ves.io.schema.rules.string.time_interval": "true"
            },
            "x-f5xc-description-short": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration.",
            "x-f5xc-description-medium": "Actual step size used in the response. It could be higher than the requested step due to metric rollups and the query duration. Format: [0-9][smhd], where s - seconds, m - minutes, h - hours, d - days.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Number of security events for each unique combination of group_by labels in the SecurityEventsCountRequest.",
        "x-f5xc-description-medium": "Number of security events for each unique combination of group_by labels in the SecurityEventsCountRequest.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafSecurityEventsCountResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafSecurityEventsCounter": {
        "type": "object",
        "description": "SecurityEventsCounter contains the timeseries data of security events counter.",
        "title": "Security Events Counter",
        "x-displayname": "Security Events Counter.",
        "x-ves-proto-message": "ves.io.schema.waf.SecurityEventsCounter",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/wafSecurityEventsId"
              }
            ],
            "x-f5xc-example": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metric": {
            "type": "array",
            "description": "List of metric values.",
            "title": "Metric Values",
            "items": {
              "$ref": "#/components/schemas/schemaMetricValue"
            },
            "x-displayname": "Metric Values.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "SecurityEventsCounter contains the timeseries data of security events counter.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafSecurityEventsCounter",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "wafSecurityEventsId": {
        "type": "object",
        "description": "SecurityEventsId uniquely identifies an entry in the response for rule_hits metrics query.\nSecurity events counter is aggregated based on the MetricLabel specified in the group_by field in the request.\nTherefore, only the fields that corresponds to the MetricLabel in the group_by will have non-empty\nvalue in the response.",
        "title": "SecurityEventsId",
        "x-displayname": "Security Events ID.",
        "x-ves-proto-message": "ves.io.schema.waf.SecurityEventsId",
        "properties": {
          "app_type": {
            "type": "string",
            "description": "AppType configured on the vhost under which this WAF instance is running.",
            "title": "AppType",
            "x-displayname": "AppType",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "x-f5xc-description-short": "AppType configured on the vhost under which this WAF instance is running.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_name": {
            "type": "string",
            "description": "Name of the Bot associated with the WAF rule.",
            "title": "Bot Name",
            "x-displayname": "Bot Name",
            "x-ves-example": "Whatweb",
            "x-f5xc-example": "whatweb",
            "x-f5xc-description-short": "Name of the Bot associated with the WAF rule.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "bot_type": {
            "type": "string",
            "description": "Type of Bot (crawler, scanner, script)",
            "title": "Bot Type",
            "x-displayname": "Bot Type",
            "x-ves-example": "Scanner",
            "x-f5xc-example": "scanner",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "instance": {
            "type": "string",
            "description": "Region from which the client's accesses caused WAF metrics to be generated.",
            "title": "Instance",
            "x-displayname": "Instance",
            "x-ves-example": "India",
            "x-f5xc-example": "India",
            "x-f5xc-description-short": "Region from which the client's accesses caused WAF metrics to be generated.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which this WAF instance is running.",
            "title": "Namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Blogging-app-namespace-1.",
            "x-f5xc-example": "blogging-app-namespace-1",
            "x-f5xc-description-short": "Namespace in which this WAF instance is running.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "service": {
            "type": "string",
            "description": "Service for which this WAF instance is reporting the metrics.",
            "title": "Service",
            "x-displayname": "Service",
            "x-ves-example": "N:greatblogs-CE.",
            "x-f5xc-example": "N:greatblogs-ce",
            "x-f5xc-description-short": "Service for which this WAF instance is reporting the metrics.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "site": {
            "type": "string",
            "description": "Site from which this WAF instance is reporting the metrics.",
            "title": "Site",
            "x-displayname": "Site",
            "x-ves-example": "Greatblogs-CE.",
            "x-f5xc-example": "greatblogs-ce",
            "x-f5xc-description-short": "Site from which this WAF instance is reporting the metrics.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "virtual_host": {
            "type": "string",
            "description": "Virtual host under which this WAF instance is running.",
            "title": "Virtual Host",
            "x-displayname": "Virtual Host.",
            "x-ves-example": "VS:greatblogs-vhost.",
            "x-f5xc-example": "VS:greatblogs-vhost",
            "x-f5xc-description-short": "Virtual host under which this WAF instance is running.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "waf_instance_id": {
            "type": "string",
            "description": "WAF instance ID.",
            "title": "WAF Instance ID",
            "x-displayname": "WAF Instance ID.",
            "x-ves-example": "Blogging-app-namespace-1:generated-WAF-rules-greatblogs-WAF.",
            "x-f5xc-example": "blogging-app-namespace-1:generated-waf-rules-greatblogs-waf",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "waf_mode": {
            "type": "string",
            "description": "Block or AlertOnly.",
            "title": "WAF Mode",
            "x-displayname": "WAF Mode",
            "x-ves-example": "Block",
            "x-f5xc-example": "Block",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "SecurityEventsId uniquely identifies an entry in the response for rule_hits metrics query.",
        "x-f5xc-description-medium": "SecurityEventsId uniquely identifies an entry in the response for rule_hits metrics query. Security events counter is aggregated based on the MetricLabel specified in the group_by field in the request. Therefore, only the fields that corresponds to the MetricLabel in the group_by will have...",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for wafSecurityEventsId",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemawaf_exclusion_policyCreateSpecType": {
        "type": "object",
        "description": "Create a WAF exclusion policy.",
        "title": "Create WAF Exclusion Policy",
        "x-displayname": "Create WAF Exclusion Policy.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.CreateSpecType",
        "properties": {
          "waf_exclusion_rules": {
            "type": "array",
            "description": "An ordered list of rules.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/policySimpleWafExclusionRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "WAF Exclusion Rules.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemawaf_exclusion_policyCreateSpecType",
          "required_fields": [
            "waf_exclusion_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"waf_exclusion_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "waf_exclusion_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemawaf_exclusion_policyGetSpecType": {
        "type": "object",
        "description": "Retrieve a WAF exclusion policy.",
        "title": "Get WAF Exclusion Policy",
        "x-displayname": "GET WAF Exclusion Policy.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.GetSpecType",
        "properties": {
          "waf_exclusion_rules": {
            "type": "array",
            "description": "An ordered list of rules.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/policySimpleWafExclusionRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "WAF Exclusion Rules.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemawaf_exclusion_policyGetSpecType",
          "required_fields": [
            "waf_exclusion_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"waf_exclusion_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "waf_exclusion_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "schemawaf_exclusion_policyReplaceSpecType": {
        "type": "object",
        "description": "Replace an existing WAF exclusion policy.",
        "title": "Replace WAF Exclusion Policy",
        "x-displayname": "Replace WAF Exclusion Policy.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.ReplaceSpecType",
        "properties": {
          "waf_exclusion_rules": {
            "type": "array",
            "description": "An ordered list of rules.",
            "maxItems": 256,
            "items": {
              "$ref": "#/components/schemas/policySimpleWafExclusionRule__ves_io_schema_views_cdn_loadbalancer"
            },
            "x-displayname": "WAF Exclusion Rules.",
            "x-ves-required": "true",
            "x-ves-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-validation-rules": {
              "ves.io.schema.rules.message.required": "true",
              "ves.io.schema.rules.repeated.max_items": "256",
              "ves.io.schema.rules.repeated.unique_metadata_name": "true"
            },
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "discovery",
              "maxItems": 256,
              "deterministic": true,
              "metadata": {
                "source": "discovery",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Replace an existing WAF exclusion policy.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for schemawaf_exclusion_policyReplaceSpecType",
          "required_fields": [
            "waf_exclusion_rules"
          ],
          "mutually_exclusive_groups": [],
          "example_json": "{\n  \"waf_exclusion_rules\": [\n    {}\n  ]\n}",
          "example_yaml": "waf_exclusion_rules:\n- {}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyCreateRequest": {
        "type": "object",
        "description": "This is the input message of the 'Create' RPC.",
        "title": "CreateRequest is used to create an instance of waf_exclusion_policy",
        "x-displayname": "Create Request.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.CreateRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectCreateMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemawaf_exclusion_policyCreateSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": true,
              "create": true,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "WAF exclusion policy for tuning false positives in app_firewall rules",
          "required_fields": [
            "metadata.name",
            "metadata.namespace",
            "spec.waf_exclusion_rules"
          ],
          "mutually_exclusive_groups": [
            {
              "name": "domain_choice",
              "fields": [
                "spec.waf_exclusion_rules[].any_domain",
                "spec.waf_exclusion_rules[].exact_value",
                "spec.waf_exclusion_rules[].suffix_value"
              ],
              "reason": "Choose domain matching type per rule"
            },
            {
              "name": "path_choice",
              "fields": [
                "spec.waf_exclusion_rules[].any_path",
                "spec.waf_exclusion_rules[].path_prefix",
                "spec.waf_exclusion_rules[].path_regex"
              ],
              "reason": "Choose path matching type per rule"
            }
          ],
          "example_yaml": "apiVersion: v1\nkind: waf_exclusion_policy\nmetadata:\n  name: example-waf-exclusion\n  namespace: default\nspec:\n  waf_exclusion_rules:\n    - metadata:\n        name: exclude-health\n      exact_path: \"/health\"\n",
          "example_json": "{\n  \"metadata\": {\n    \"name\": \"example-waf-exclusion\",\n    \"namespace\": \"default\"\n  },\n  \"spec\": {\n    \"waf_exclusion_rules\": [\n      {\"metadata\": {\"name\": \"exclude-health\"}}\n    ]\n  }\n}\n"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyCreateResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.CreateResponse",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemawaf_exclusion_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_exclusion_policyCreateResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyDeleteRequest": {
        "type": "object",
        "description": "This is the input message of the 'DELETE' RPC.",
        "title": "DeleteRequest is used to delete a waf_exclusion_policy",
        "x-displayname": "DELETE Request.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.DeleteRequest",
        "properties": {
          "fail_if_referred": {
            "type": "boolean",
            "description": "Fail the DELETE operation if this object is being referred by other objects.",
            "title": "fail_if_referred",
            "format": "boolean",
            "x-displayname": "Fail-If-Referred.",
            "x-f5xc-description-short": "Fail the DELETE operation if this object is being referred by other objects.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Name of the configuration object.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "Namespace in which the configuration object is present.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "x-f5xc-description-short": "Namespace in which the configuration object is present.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_exclusion_policyDeleteRequest",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyGetResponse": {
        "type": "object",
        "description": "This is the output message of the 'GET' RPC.",
        "title": "GetResponse is the shape of a read waf_exclusion_policy",
        "x-displayname": "GET Response.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.GetResponse",
        "properties": {
          "create_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/waf_exclusion_policyCreateRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for create form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "deleted_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "deleted_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Deleted Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "disabled_referred_objects": {
            "type": "array",
            "description": "The set of deleted objects that are referred by this object.",
            "title": "disabled_referred_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Disabled Referred Objects.",
            "x-f5xc-description-short": "The set of deleted objects that are referred by this object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "referring_objects": {
            "type": "array",
            "description": "The set of objects that are referring to this object in their spec.",
            "title": "referring_objects",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Referring Objects.",
            "x-f5xc-description-short": "The set of objects that are referring to this object in their spec.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "replace_form": {
            "allOf": [
              {
                "$ref": "#/components/schemas/waf_exclusion_policyReplaceRequest"
              }
            ],
            "x-f5xc-description-short": "Configuration parameter for replace form.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemawaf_exclusion_policyGetSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "status": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/waf_exclusion_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-example": "active",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "maxLength": 17,
            "minLength": 17,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_exclusion_policyGetResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyListResponse": {
        "type": "object",
        "description": "This is the output message of 'List' RPC.",
        "title": "ListResponse is the collection of waf_exclusion_policy",
        "x-displayname": "List Response.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.ListResponse",
        "properties": {
          "errors": {
            "type": "array",
            "description": "Errors(if any) while listing items from collection.",
            "title": "errors",
            "items": {
              "$ref": "#/components/schemas/schemaErrorType__ves_io_schema_ai_assistant"
            },
            "x-displayname": "Errors",
            "x-f5xc-description-short": "Errors(if any) while listing items from collection.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "items": {
            "type": "array",
            "description": "Items represents the collection in response.",
            "title": "items",
            "items": {
              "$ref": "#/components/schemas/waf_exclusion_policyListResponseItem"
            },
            "x-displayname": "Items",
            "x-f5xc-example": "[\"item1\", \"item2\", \"item3\"]",
            "x-f5xc-description-short": "Items represents the collection in response.",
            "x-f5xc-constraints": {
              "constraintType": "array",
              "category": "general",
              "minItems": 0,
              "maxItems": 256,
              "uniqueItems": false,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_exclusion_policyListResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyListResponseItem": {
        "type": "object",
        "description": "By default a summary of waf_exclusion_policy is returned in 'List'. By setting\n'report_fields' in the ListRequest more details of each item can be got.",
        "title": "ListResponseItem is an individual item in a collection of waf_exclusion_policy",
        "x-displayname": "List Item",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.ListResponseItem",
        "properties": {
          "annotations": {
            "type": "object",
            "description": "The set of annotations present on this waf_exclusion_policy.",
            "title": "annotations",
            "x-displayname": "Annotations.",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of annotations present on this waf_exclusion_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "description": {
            "type": "string",
            "description": "The description set for this waf_exclusion_policy.",
            "title": "description",
            "x-displayname": "Description.",
            "x-f5xc-description-short": "The description set for this waf_exclusion_policy.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "content",
              "maxLength": 1024,
              "minLength": 0,
              "characterSet": {
                "description": "Free text with UTF-8 support"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.8,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 21,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "disabled": {
            "type": "boolean",
            "description": "A value of true indicates waf_exclusion_policy is administratively disabled.",
            "title": "disabled",
            "format": "boolean",
            "x-displayname": "Disabled",
            "x-f5xc-example": "True",
            "x-f5xc-description-short": "Value of true indicates waf_exclusion_policy is administratively disabled.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "get_spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemawaf_exclusion_policyGetSpecType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "labels": {
            "type": "object",
            "description": "The set of labels present on this waf_exclusion_policy.",
            "title": "labels",
            "x-displayname": "Labels",
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-description-short": "The set of labels present on this waf_exclusion_policy.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectGetMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this waf_exclusion_policy.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Name",
            "x-f5xc-example": "name",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "namespace": {
            "type": "string",
            "description": "The namespace this item belongs to.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Ns1",
            "x-f5xc-example": "ns1",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "owner_view": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaViewRefType"
              }
            ],
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-f5xc-references": [
              {
                "resource_kind": null,
                "field_path": "owner_view",
                "gated_by": null,
                "required": false,
                "cardinality": "single"
              }
            ]
          },
          "status_set": {
            "type": "array",
            "description": "The status reported by different services for this configuration object.",
            "title": "status",
            "items": {
              "$ref": "#/components/schemas/waf_exclusion_policyStatusObject"
            },
            "x-displayname": "Status",
            "x-f5xc-description-short": "The status reported by different services for this configuration object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "system_metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaSystemObjectGetMetaType__ves_io_schema_api_sec_api_crawler"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "tenant": {
            "type": "string",
            "description": "The tenant this item belongs to.",
            "title": "tenant",
            "x-displayname": "Tenant",
            "x-ves-example": "Example-corp.",
            "x-f5xc-example": "example-corp",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 12,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          },
          "uid": {
            "type": "string",
            "description": "The unique uid of this waf_exclusion_policy.",
            "title": "uid",
            "x-displayname": "UID",
            "x-ves-example": "00000000-0000-4000-8000-d36e055b3ea2.",
            "x-f5xc-example": "00000000-0000-4000-8000-d36e055b3ea2",
            "x-f5xc-description-short": "The unique uid of this waf_exclusion_policy.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only",
            "minLength": 36,
            "format": "uuid",
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00"
          }
        },
        "x-f5xc-description-short": "By default a summary of waf_exclusion_policy is returned in 'List'.",
        "x-f5xc-description-medium": "By default a summary of waf_exclusion_policy is returned in 'List'. By setting 'report_fields' in the ListRequest more details of each item can be got.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_exclusion_policyListResponseItem",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyReplaceRequest": {
        "type": "object",
        "description": "This is the input message of the 'Replace' RPC.",
        "title": "ReplaceRequest is used to replace contents of a waf_exclusion_policy",
        "x-displayname": "Replace Request.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.ReplaceRequest",
        "properties": {
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaObjectReplaceMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "spec": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemawaf_exclusion_policyReplaceSpecType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "resource_version": {
            "type": "string",
            "x-f5xc-concurrency-token": {
              "server_assigned": true,
              "echo_on_operations": [
                "replace"
              ]
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "WAF exclusion policy for tuning false positives in app_firewall rules",
          "required_fields": [],
          "mutually_exclusive_groups": [
            {
              "name": "domain_choice",
              "fields": [
                "spec.waf_exclusion_rules[].any_domain",
                "spec.waf_exclusion_rules[].exact_value",
                "spec.waf_exclusion_rules[].suffix_value"
              ],
              "reason": "Choose domain matching type per rule"
            },
            {
              "name": "path_choice",
              "fields": [
                "spec.waf_exclusion_rules[].any_path",
                "spec.waf_exclusion_rules[].path_prefix",
                "spec.waf_exclusion_rules[].path_regex"
              ],
              "reason": "Choose path matching type per rule"
            }
          ],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyReplaceResponse": {
        "type": "object",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.ReplaceResponse",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_exclusion_policyReplaceResponse",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_exclusion_policyStatusObject": {
        "type": "object",
        "title": "Most recently observed status of object",
        "x-displayname": "Status Object.",
        "x-ves-proto-message": "ves.io.schema.waf_exclusion_policy.StatusObject",
        "properties": {
          "conditions": {
            "type": "array",
            "description": "Conditions reported by various component of the system.",
            "title": "conditions",
            "items": {
              "$ref": "#/components/schemas/schemaConditionType"
            },
            "x-displayname": "Conditions.",
            "x-f5xc-description-short": "Conditions reported by various component of the system.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "metadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemaStatusMetaType"
              }
            ],
            "x-f5xc-example": "{\"key\": \"value\"}",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "object_refs": {
            "type": "array",
            "description": "Reference to object for current status.",
            "title": "object_refs",
            "items": {
              "$ref": "#/components/schemas/ioschemaObjectRefType"
            },
            "x-displayname": "Config Object.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_exclusion_policyStatusObject",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "waf",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": true
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF exclusion policies benefit from centralized management"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_signatures_changelogReleaseSignatures": {
        "type": "object",
        "title": "ReleaseSignatures",
        "x-displayname": "Release Signatures.",
        "x-ves-proto-message": "ves.io.schema.waf_signatures_changelog.ReleaseSignatures",
        "properties": {
          "added_signature_ids": {
            "type": "array",
            "description": "A list of new signature IDs in the release.",
            "title": "Added Signatures",
            "items": {
              "type": "string",
              "format": "int64"
            },
            "x-displayname": "Added Signatures.",
            "x-f5xc-example": "[\"200101852\", \"200103290\"]",
            "x-f5xc-description-short": "List of new signature IDs in the release.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          },
          "release_date": {
            "type": "string",
            "description": "Changelog release date.",
            "title": "Release Date",
            "x-displayname": "Release Date.",
            "x-f5xc-example": "\"2022-12-06",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "updated_signature_ids": {
            "type": "array",
            "description": "A list of updated signature IDs in the release.",
            "title": "Updated Signatures",
            "items": {
              "type": "string",
              "format": "int64"
            },
            "x-displayname": "Updated Signatures.",
            "x-f5xc-example": "[\"200101852\", \"200103290\"]",
            "x-f5xc-description-short": "List of updated signature IDs in the release.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "x-field-mutability": "read-only"
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_signatures_changelogReleaseSignatures",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_signatures_changelogReleasedSignaturesRsp": {
        "type": "object",
        "description": "Response to GET the list of released signatures.",
        "title": "ReleasedSignaturesRes",
        "x-displayname": "Released Signatures Response.",
        "x-ves-proto-message": "ves.io.schema.waf_signatures_changelog.ReleasedSignaturesRsp",
        "properties": {
          "release_signatures": {
            "type": "array",
            "description": "Release Signatures.",
            "title": "release_signatures",
            "items": {
              "$ref": "#/components/schemas/waf_signatures_changelogReleaseSignatures"
            },
            "x-displayname": "Release Signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response to GET the list of released signatures.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_signatures_changelogReleasedSignaturesRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_signatures_changelogStagedSignature": {
        "type": "object",
        "description": "Staged signature details.",
        "title": "StagedSignature",
        "x-displayname": "Staged Signature.",
        "x-ves-proto-message": "ves.io.schema.waf_signatures_changelog.StagedSignature",
        "properties": {
          "accuracy": {
            "type": "string",
            "description": "Detected signature accuracy.",
            "title": "accuracy",
            "x-displayname": "Accuracy",
            "x-ves-example": "Medium",
            "x-f5xc-example": "Medium",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "attack_type": {
            "type": "string",
            "description": "The Signature Attack Type.",
            "title": "attack_type",
            "x-displayname": "Attack Type.",
            "x-ves-example": "Server Side Code Injection.",
            "x-f5xc-example": "Server Side Code Injection",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "context": {
            "type": "string",
            "description": "Context of the signature detected.",
            "title": "context",
            "x-displayname": "Context",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "count": {
            "type": "integer",
            "description": "Number of times signature detected in traffic.",
            "title": "count",
            "format": "int32",
            "x-displayname": "Count",
            "x-ves-example": "5",
            "x-f5xc-example": "5",
            "x-f5xc-description-short": "Number of times signature detected in traffic.",
            "x-f5xc-constraints": {
              "constraintType": "number",
              "category": "general",
              "minimum": 0,
              "maximum": 10000,
              "multipleOf": 1,
              "metadata": {
                "source": "inferred",
                "confidence": 0.7,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "id": {
            "type": "string",
            "description": "Detected signature ID.",
            "title": "id",
            "x-displayname": "ID",
            "x-ves-example": "200104853",
            "x-f5xc-example": "200104853",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "id_name": {
            "type": "string",
            "description": "Signature ID name.",
            "title": "id_name",
            "x-displayname": "ID name",
            "x-ves-example": "200101746, ontransitionrun (URI)",
            "x-f5xc-example": "200101746, ontransitionrun (URI)",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "matching_info": {
            "type": "string",
            "description": "Request details for the matched signature.",
            "title": "matching_info",
            "x-displayname": "Matching Info.",
            "x-ves-example": "Matched 16 characters on offset 22 against value: '/ontransitionrun/abbc/ontransitionrun='.",
            "x-f5xc-example": "Matched 16 characters on offset 22 against value'/ontransitionrun/abbc/ontransitionrun='.",
            "x-f5xc-description-short": "Request details for the matched signature.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "name": {
            "type": "string",
            "description": "Detected signature name.",
            "title": "name",
            "x-displayname": "Name",
            "x-ves-example": "Java code injection FreeMarker - objectWrapper (URI)",
            "x-f5xc-example": "Java code injection FreeMarker - objectWrapper (URI)",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter, may contain lowercase alphanumeric and hyphens, must end with alphanumeric",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "state": {
            "type": "string",
            "description": "State of the signature.",
            "title": "state",
            "x-displayname": "State",
            "x-ves-example": "Staged",
            "x-f5xc-example": "Staged",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_signatures_changelogStagedSignature",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_signatures_changelogStagedSignaturesReq": {
        "type": "object",
        "description": "Request to GET the list of all staged signatures.",
        "title": "StagedSignaturesReq",
        "x-displayname": "Staged Signatures Request.",
        "x-ves-proto-message": "ves.io.schema.waf_signatures_changelog.StagedSignaturesReq",
        "properties": {
          "end_time": {
            "type": "string",
            "description": "Fetch staged signatures whose timestamp <= end_time\nformat: unix_timestamp|RFC 3339.",
            "title": "end_time",
            "x-displayname": "End Time",
            "x-ves-example": "2019-09-23T12:30:11.733Z.",
            "x-f5xc-example": "2019-09-23T12:30:11.733Z",
            "x-f5xc-description-short": "Fetch staged signatures whose timestamp <= end_time format: unix_timestamp|RFC 3339.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "namespace": {
            "type": "string",
            "description": "Fetch staged signatures for the given namespace.",
            "title": "namespace",
            "x-displayname": "Namespace",
            "x-ves-example": "Shared",
            "x-f5xc-example": "shared",
            "x-f5xc-description-short": "Fetch staged signatures for the given namespace.",
            "maxLength": 63,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "naming",
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$",
              "characterSet": {
                "allowed": "[a-z0-9-]",
                "restricted": "[^a-z0-9-]",
                "required": "[a-z0-9]",
                "description": "Lowercase letter start, alphanumeric with hyphens, alphanumeric end"
              },
              "format": "dns-label",
              "formatDescription": "DNS-1035 label: must start with a lowercase letter",
              "validation": {
                "rfc": "RFC 1035",
                "standard": "DNS-1035 label (alpha-first)"
              },
              "metadata": {
                "source": "inferred",
                "confidence": 0.99,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              },
              "deterministic": true
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            },
            "minLength": 1,
            "x-reconciled-from-discovery": true,
            "x-reconciled-at": "2026-09-24T11:00:01+00:00",
            "pattern": "^[a-z]([-a-z0-9]*[a-z0-9])?$"
          },
          "start_time": {
            "type": "string",
            "description": "Fetch staged signatures whose timestamp >= start_time\nformat: unix_timestamp|RFC 3339.",
            "title": "start_time",
            "x-displayname": "Start Time.",
            "x-ves-example": "2019-09-23T12:30:11.733Z.",
            "x-f5xc-example": "2019-09-23T12:30:11.733Z",
            "x-f5xc-description-short": "Fetch staged signatures whose timestamp >= start_time format: unix_timestamp|RFC 3339.",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          },
          "vh_name": {
            "type": "string",
            "description": "Virtual Host for current request.",
            "title": "vh_name",
            "x-displayname": "Virtual Host Name.",
            "x-ves-example": "Blogging-app.",
            "x-f5xc-example": "blogging-app",
            "maxLength": 1024,
            "x-f5xc-constraints": {
              "constraintType": "string",
              "category": "general",
              "maxLength": 1024,
              "metadata": {
                "source": "inferred",
                "confidence": 0.85,
                "validatedAt": "2026-09-24T11:00:01+00:00"
              }
            },
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Request to GET the list of all staged signatures.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_signatures_changelogStagedSignaturesReq",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      },
      "waf_signatures_changelogStagedSignaturesRsp": {
        "type": "object",
        "description": "Response to GET the list of all staged signatures.",
        "title": "StagedSignaturesRsp",
        "x-displayname": "Staged Signatures Response.",
        "x-ves-proto-message": "ves.io.schema.waf_signatures_changelog.StagedSignaturesRsp",
        "properties": {
          "staged_signatures": {
            "type": "array",
            "description": "List of staged signatures.",
            "title": "staged_signatures",
            "items": {
              "$ref": "#/components/schemas/waf_signatures_changelogStagedSignature"
            },
            "x-displayname": "Staged Signatures.",
            "x-f5xc-required-for": {
              "minimum_config": false,
              "create": false,
              "update": false,
              "read": false
            }
          }
        },
        "x-f5xc-description-short": "Response to GET the list of all staged signatures.",
        "x-f5xc-minimum-configuration": {
          "description": "Minimum configuration for waf_signatures_changelogStagedSignaturesRsp",
          "required_fields": [],
          "mutually_exclusive_groups": [],
          "example_json": "{}",
          "example_yaml": "{}"
        },
        "x-f5xc-cli-domain": "virtual",
        "x-f5xc-namespace-profile": {
          "constraint": {
            "allowed": [
              "custom",
              "default",
              "shared"
            ],
            "enforced": false
          },
          "recommendation": {
            "primary": "shared",
            "alternatives": [],
            "rationale": "WAF objects benefit from centralized management for consistency"
          },
          "classification": {
            "category": "security",
            "multi_tenant_pattern": "shared-ref"
          }
        }
      }
    },
    "responses": {},
    "parameters": {},
    "requestBodies": {}
  }
}
